openCV坐标系与row&col的关系 (Mat::at(x,y)和Mat::at(Point(x, y))的区别)
来源:互联网 发布:女生 投行 知乎 编辑:程序博客网 时间:2024/05/27 14:12
直接给出对应关系吧
注意都是相反的
row == heigh == Point.y
col == width == Point.x
Mat::at(Point(x, y)) == Mat::at(y,x)
因为还有点的坐标,所以建议在访问时都用Mat::at(Point(x, y))这种形式吧,免去了点坐标和行列的转换
补充(详细解释)
坐标体系中的零点坐标为图片的左上角,X轴为图像矩形的上面那条水平线;Y轴为图像矩形左边的那条垂直线。该坐标体系在诸如结构体Mat,Rect,Point中都是适用的。(虽然网上有学着说OpenCV中有些数据结构的坐标原点是在图片的左下角,但是我暂时还没碰到过)。
在使用image.at(x1, x2)来访问图像中点的值的时候,x1并不是图片中对应点的x轴坐标,而是图片中对应点的y坐标。因此其访问的结果其实是访问image图像中的Point(x2, x1)点,即与image.at(Point(x2, x1))效果相同。
如果所画图像是多通道的,比如说image图像的通道数时n,则使用Mat::at(x, y)时,其x的范围依旧是0到image的height,而y的取值范围则是0到image的width乘以n,因为这个时候是有n个通道,所以每个像素需要占有n列。但是如果在同样的情况下,使用Mat::at(point)来访问的话,则这时候可以不用考虑通道的个数,因为你要赋值给获取Mat::at(point)的值时,都不是一个数字,而是一个对应的n维向量。
1 0
- openCV坐标系与row&col的关系 (Mat::at(x,y)和Mat::at(Point(x, y))的区别)
- OpenCV学习笔记(十二):OpenCV坐标系与row&col的关系 (Mat::at(x,y)和Mat::at(Point(x, y))的区别)
- opencv访问矩阵元素出错 int point = Mat.at<float>(y,x)
- opencv学习笔记3——对Mat::at(x,y)的测试
- x+=y与x=x+y的区别
- x+=y与x=x+y的区别
- 比较表达式 x<y 与x-y<0的区别
- atan(y/x)与atan2(y,x)的区别
- Android scrollBy(x,y)和scrollTo(x,y)的区别
- cv::Mat成员函数 at(int row,int col)
- 一张图看懂TranslationX,Y和X,Y的区别
- 投影坐标系 X和Y坐标的位数
- opencv 中x,y,height, width,rows,cols 的关系
- Java中x=x+y与x+=y的区别,体现强制类型转换
- Java中x+=y和x=x+y两种实现的区别
- Java基础:X+=Y和X=X+Y的区别
- opencv Mat.at
- matlab指定mat类型的数据,第一列为x,第二列为y,并画出该图形
- Android Studio报错:Unable to start the daemon process: could not reserve enough space for object heap
- 关于工作习惯的思考
- SAP方丈-写给新手的SAP成本核算流程
- TCP短连接
- LeetCode 031 Next Permutation
- openCV坐标系与row&col的关系 (Mat::at(x,y)和Mat::at(Point(x, y))的区别)
- C++面向对象操作符重载:算术操作符和关系操作符
- 为什么一般不将'在制品转出科目'设为初级成本要素
- Android5.0设置主题样式
- MySQL数据库重启后乱码
- SeekBar拖动条控件
- 集算器实现SQL转置的通用方法
- The OpenGL Pipeline
- 【机器学习】梯度下降法的相关介绍