在OpenCV/JavaCV中如何计算面积?

4
请问有人能解释一下如何识别以下图像中应该是红色和蓝色的区域吗?我尝试使用cvFindContours()方法,但它没有给我期望的结果。 输入图像 enter image description here 期望结果 enter image description here 我想知道是否有其他方法来识别或计算这种轮廓的面积。请友善地分享一个简单的代码示例。

看起来你可以简单地找到所有轮廓并保留最大的两个,不是吗? - Quentin Geissmann
1
尝试使用cvBlobslib库...它具有可提供斑点面积的函数...在这里,您可以将白色补丁视为黑色背景上的斑点(..边界线..)..http://opencv.willowgarage.com/wiki/cvBlobsLib - rotating_image
1个回答

0

函数floodFill还可以返回一个区域作为其返回值。因此,您可以做的一件事是对每个像素进行光栅扫描:每次到达未触及的像素时,将其着色为某种颜色(黑色),并存储该区域的面积以及像素坐标,直到整个图像都被覆盖。

最终,您将拥有一组具有每个区域中一个像素坐标的区域集。

如果您需要恢复特定区域,则可以再次使用floodFill通过将该区域着色为特定颜色。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接