opencv读图的坐标系转换问题

首先要明确opencv坐标系和numpy表示是不同的坐标系。

对于一张图片在opencv坐标系中,左上角是原点,如果想确定图片中的像素点,可以用坐标来表示位置,如(4,3)表示距离原点宽度为4,高度为3的位置。具体还可参考链接:https://blog.****.net/lz0499/article/details/80978433

Python中使用Numpy 数组代表的图像时,表示的是一个二维数组。用shape方法得到的数组属性为(height,width,depth)。矩阵中的行在图像坐标系中恰好对应的是图像的高度,而矩阵中的列恰好对应图像的宽度,而图像的深度的depth未改变其含义。所以在numpy中要找到(4,3)位置的像素值应该是(3,4)。先找到像素点的行数,即第3行,在找到像素点的列数,第4列。

 

平时使用的程序中读取图片访问像素都是(h,w)的方式。和平时使用的IrfanView看图不同。

实验如图所示:

opencv读图的坐标系转换问题
标题

 

想读到方框区域内的区域,看图软件上的坐标是(245,54),在程序中则是(54,245)。