在冈萨雷斯的【数字图像处理】一书中,定义图像左上角为原点,竖直向下为x轴,水平向右为y轴。我也想当然的认为在opencv里面也是这样。

  最近看一些opencv的示例程序时,总是被里面的一些注释所迷惑,而且各种参考书也没有清楚的说明各个坐标轴的关系。遂查之,才发现,这里的定义是不一样的。

  在opencv中,坐标系的原点位于图片的左上角,但是其X轴为水平向右,Y轴为竖直向下。copy的图示如下:

1)该坐标体系在诸如结构体Mat,Rect,Point中都是适用的

cols == width == Point.x
rows == heigh == Point.y

2)在使用image.at(i, j)来访问图像中像素点的时候,i应该为Mat的行号,j为Mat的列号,并不是图片坐标系中对应点的x,y轴坐标。因此其访问的结果其实是访问image图像坐标系中位于Point(j, i)的像素点,即与image.at(Point(j, i))效果相同。

Mat::at(Point(x, y)) == Mat::at(y,x)

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐