获取二进制图像中对象的位置和大小

时间:2012-07-17 08:25:07

标签: opencv javacv object-detection

有人有想法从对象中获取大小和位置吗?在具有白色像素的二进制图像中检测到对象:

例如:Detected / Original

http://ivrgwww.epfl.ch/supplementary_material/RK_CVPR09/Images/segmentation/2_sal/0_12_12171.jpg http://ivrgwww.epfl.ch/supplementary_material/RK_CVPR09/Images/comparison/orig/0_12_12171.jpg

我知道CvMoments - 方法。但在这种情况下我不知道如何使用它。

顺便说一下:我怎样才能让面膜更清晰?

2 个答案:

答案 0 :(得分:2)

简单算法:

  1. 使用形态学操作(侵蚀)删除小区域的白色像素。
  2. 使用findContours查找所有轮廓。
  3. 使用countNonZerocontourArea查找每个轮廓的区域。
  4. 循环遍历每个轮廓的所有点并找到它们的平均值。这将是轮廓的中心。

答案 1 :(得分:1)

如果对象是树,则应使用形态为Astor的方式删除小区域。

寻找质量的替代方案,群众中心正在使用时刻: http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=moments#moments

正如医生所说的那样,m00是质量

还有质量中心的公式。

此方法适用于仅在分割后对象保留在图像上的情况。