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

本文详细解释了OpenCV库中Mat::at函数的两种使用方式:通过行列索引和坐标点获取图像像素的区别,并通过示例图帮助读者更好地理解两者的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意!!

我在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))
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值