【OpenCV 问题记录】(1)对于.at(j, i) 和.at(Point(j, i)) 的区别

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u011897411/article/details/80293949

注意!!

我在opencv实现在图像上画对角线和分割之一上说了一下自己对于Mat::at 这个类的一些看法,我觉得可能会误导了一些人,所以特意说一下这两者的区别

我说说我的理解:

srcImage.at<uchar>(j, i) //表示的是  j 行 i 列 的这个像素
srcImage.at<uchar>(Point(j, i)) //表示的是 坐标(j,i)的像素

为了我下面的图方便说明 j 换成 x , i 换成 y 。也就是说:

srcImage.at<uchar>(x, y) //表示的是 x 行 y 列 的这个像素
srcImage.at<uchar>(Point(x, y)) //表示的是 坐标(x,y)的像素

可能就会有人不明白了,有什么区别呢??
先上一幅图
坐标图
问图中红点的坐标是? (2,1) 还是 (1,2)?
答案是(2,1)!
为什么? 看清了 我问的是坐标!!
那么(2,1) 和 (1,2)究竟有什么不同?
(2,1)表示的是红点的坐标,就是红点的 x 坐标是 2, y 坐标是 1。
(1,2)表示的是红点的行和列,就是红点的行是1,列是2,也就是红点在第 1 行,第 2 列。
这下子我相信大家都明白这两者的区别了吧

srcImage.at<uchar>(j, i)
srcImage.at<uchar>(Point(j, i))

猜你喜欢

转载自blog.csdn.net/u011897411/article/details/80293949
今日推荐