请有人解释如何识别下图中应该是红色和蓝色的区域吗?我尝试使用 cvFindContours() 方法,但它没有为我提供预期的结果。

输入图像

预期结果

我想知道是否有其他方法可以识别或计算这种轮廓的面积。请与此分享简单的代码示例。

最佳答案

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

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

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

关于image-processing - opencv/javacv中的面积计算?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12237598/

10-12 21:32