请有人解释一下如何识别下图中应该是红色和蓝色的区域吗?我尝试使用 cvFindContours() 方法,但它没有给我预期的结果。
输入图片
预期结果
我想知道是否有任何其他方法来识别或计算这种轮廓的面积。请善待与此分享简单的代码示例。
最佳答案
函数 floodFill 也可以返回一个区域作为它的返回值。所以你可以做的一件事是光栅扫描每个像素:每次到达未触及的像素时,将其着色为某种颜色(黑色),并存储该区域的面积以及像素坐标,继续直到整个图像都不会被覆盖.
最后,您将拥有一组区域,每个区域中的一个像素都有坐标。
您是否需要恢复特定区域,您可以通过将该区域着色为特定颜色来再次使用 floodFill。
关于image-processing - opencv/javacv 中的面积计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12237598/