opencv获取轮廓内部像素点的坐标

  在实际项目开发过程中,提取得到连通域的轮廓以后,需要进一步得到轮廓内部所有像素点的坐标,用于统计轮廓围成区域的灰度均值。方法一使用opencv自带的 pointPolygonTest函数,实测发现耗时比较久。方法二通过使用drawContours函数可以实现同样的目的,且耗时比方法一短很多。这里会同时介绍这2种方法及其实现代码,但是推荐使用方法二。

一、使用pointPolygonTest函数

  逐一遍历图像中的所有像素点,使用pointPolygonTest函数判断像素点是否位于轮廓的内部。该函数的调用方法如下,pt是待测试的点,contour是待测试的轮廓,measureDist决定是否计算pt到contour的距离。若measureDist=false:点在轮廓内部返回+1,点在轮廓外部返回-1,点在轮廓上返回0。若measureDist=true:点在轮廓内部返回正的距离,点在轮廓外部返回负的距离,点在轮廓上返回0。

double cv

猜你喜欢

转载自blog.csdn.net/qq_21603315/article/details/130455041