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