opencv测试篇:opencv中at的使用误区及point辨别

opencv测试篇:opencv中at的使用误区及point辨别

笔者初次使用opencv遇到的误区(大坑):
在opencv中 at这个函数是一个重载函数,如下图所示:
在这里插入图片描述
而在图像处理的时候,常常需要获取图像中某个像素的灰度值或者二值化的值,而opencv足够多的方法去获取这个值,下面笔者就介绍两种常见的方法及相应的使用误区:

方法一:可以通过指针来获取

在这里插入图片描述
这个方法很明显的是提取某行的指针值然后进行数组下标获取像素值;(注意指针的使用需谨慎)

方法二:是通过at 这个重载函数获取:

而在此之前,笔者需要引入一个opencv提供的坐标点类cv::Point(x,y),很明显的x代表cols,反之y为rows。
那么在at函数使用的时候需要注意区分下列两种调用:
在这里插入图片描述
&&
在这里插入图片描述
两者虽然实现的结果一样,但是在赋值的时候需要谨慎cols和rows的顺序;
下面附上局部验证代码:
在这里插入图片描述
执行结果如下所示:
在这里插入图片描述

方法三:调用cvGetReal2D函数获取对应像素点

cvGetReal2D声明如下图所示:
在这里插入图片描述
给定IplImage图对象以及需要获取像素点的行列坐标(idx0:行 idx1:列)
即返回一个double的像素值。
调用如下所示:
在这里插入图片描述
局部代码如下所示:
在这里插入图片描述
执行结果:
在这里插入图片描述
附文章程序使用到的图片:
在这里插入图片描述

转载请注明出处

https://blog.csdn.net/qq_49710945/article/details/108593728

猜你喜欢

转载自blog.csdn.net/qq_49710945/article/details/108593728