Android颜色检测opencv



我使用opencv颜色斑点检测来检测黑色背景下的小白点。当点很大时,它可以检测到,但当点很小时,它就不能检测到。我认为有一个参数,我们可以设置小点的颜色斑点检测样本,但我没有找到。有人知道吗?或者有人知道更好更快的检测白色的方法吗?注意:在相机中只有一个白点,所有的背景都是黑色的。

这是物体较大时的图片(相机靠近物体):

http://www.axgig.com/images/14410928700656745289.png

,这是当对象很小(相机离对象很远):

http://www.axgig.com/images/00768609020826910230.png

我想检测白点的坐标,怎么检测?

如果整个背景的其余部分是黑色的,您感兴趣的区域是白色的,您可以通过使用Imgproc模块中的Moments函数找到中心。你可以在维基百科上读到它背后的数学原理,但简单地说,就是对所有非零点的加权位置求和。一旦你有了你的Moments结构,你可以计算中心:

x = moments.m10 / moments.m00
y = moments.m01 / moments.m00

在你的情况下,使用Android和OpenCV,这是你将使用的代码:

// inputMat is the Mat that you took screenshots of earlier in the question.
Moments moments = Imgproc.moments(inputMat, true);
float center_x = moments.m10 / moments.m00;
float center_y = moments.m01 / moments.m00;
// now center_x and center_y have the coordinates of the center of the blob.

相关内容

  • 没有找到相关文章

最新更新