opencv中坐标的问题

转载 2018年04月16日 20:26:50

晚上在写相关系数法匹配程序时,发现有一个地方不停的报错,好像是坐标超限的错误,我上网查了一下,原来并不是x,y坐标定义并不是自己之前想的那样。

row == heigh == Point.y

col == width == Point.x

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

因为还有点的坐标,所以建议在访问时都用Mat::at(Point(x, y))这种形式吧,免去了点坐标和行列的转换


补充(详细解释)

  1. 坐标体系中的零点坐标为图片的左上角,X轴为图像矩形的上面那条水平线;Y轴为图像矩形左边的那条垂直线。该坐标体系在诸如结构体Mat,Rect,Point中都是适用的。(虽然网上有学着说OpenCV中有些数据结构的坐标原点是在图片的左下角,但是我暂时还没碰到过)。

  2. 在使用image.at(x1, x2)来访问图像中点的值的时候,x1并不是图片中对应点的x轴坐标,而是图片中对应点的y坐标。因此其访问的结果其实是访问image图像中的Point(x2, x1)点,即与image.at(Point(x2, x1))效果相同。

  3. 如果所画图像是多通道的,比如说image图像的通道数时n,则使用Mat::at(x, y)时,其x的范围依旧是0到image的height,而y的取值范围则是0到image的width乘以n,因为这个时候是有n个通道,所以每个像素需要占有n列。但是如果在同样的情况下,使用Mat::at(point)来访问的话,则这时候可以不用考虑通道的个数,因为你要赋值给获取Mat::at(point)的值时,都不是一个数字,而是一个对应的n维向量。


OpenCV 行列值与坐标的对应关系

注:OpenCV 版本3.2.0OpenCV像素坐标系如下图所示:行列与坐标系对应关系 行:Y 列:X 注意!注意!注意! 在Mat类型变量访问时下标是反着写的,即:按照(y, x)的关系形式...
  • u010189457
  • u010189457
  • 2017-05-10 17:28:04
  • 828

OpenCV中IplImage与BMP转换

  • 2010年10月29日 10:45
  • 1KB
  • 下载

javascript中获取坐标的参数

  • 2010年03月29日 22:36
  • 246KB
  • 下载

codeforce : C. Line(扩展欧几里得)

扩展欧几里得
  • wyxeainn
  • wyxeainn
  • 2017-08-21 09:38:42
  • 152

GIS中折线平行线坐标的算法与实现

  • 2010年02月22日 13:41
  • 85KB
  • 下载

python中的坐标表示方法

python利用元组、字典可以表示坐标增减,具体做法为: def change_directions(e):      #e表示移动方向,list类型     moves = { "up":(...
  • mirek_tan
  • mirek_tan
  • 2017-04-30 21:49:30
  • 161

BFS例题--一维坐标的移动(java)

习题:一维坐标的移动 1. 在一个长度为n的坐标轴上,蒜头君想从A点 移动到B点。他的移动规则如下: 2. 向前一步,坐标增加1。 3. 向后一步,坐标减少1。 4. 跳跃一步,使得坐标乘2。...
  • V_Jasmine
  • V_Jasmine
  • 2018-02-05 17:33:29
  • 64

OpenCV之利用鼠标获取坐标

转载自:http://blog.csdn.net/quarryman/article/details/8450387 好久没有更新博客了,今天临时起意,将以前写的示例代码整理了一下,...
  • bit452
  • bit452
  • 2015-04-08 00:50:40
  • 1737

VB 当前坐标的实例

  • 2010年06月07日 16:32
  • 36KB
  • 下载

(三)窗口与坐标

窗口组件: Qt中的组件分为: 容器类(父组件):用于包含其他的界面组件 功能类(子组件):用于实现特定的交互功能   窗口与子组件: Qt中没有父组件的顶级组价叫做窗口 Qt中嵌入在窗口(拥有父组件...
  • Hello_World_LVLcoder
  • Hello_World_LVLcoder
  • 2017-02-06 21:28:12
  • 194
收藏助手
不良信息举报
您举报文章:opencv中坐标的问题
举报原因:
原因补充:

(最多只允许输入30个字)