我有一个带有多个对象的图像。为了对其应用cvFloodFill操作,我需要每个对象的种子点作为参数。我如何找到种子点?还如何查找其他参数,例如新值,lo_diff和up_diff?
或者,如果还有其他填充图像的方法,请提出建议!

最佳答案

void cvFloodFill(CvArr* image,
                 CvPoint seed_point,
                 CvScalar new_val,
                 CvScalar lo_diff = cvScalarAll(0),
                 CvScalar up_diff=cvScalarAll(0),
                 CvConnectedComp* comp=NULL,
                 int flags=4,
                 CvArr* mask=NULL)

According to the docsseed_point是标记操作起点的x,y坐标。如果您查看this example,则this group的最后一张图片显示了在步骤1:过滤器示例中演示的cvFloodFill()操作的结果。
newValloDiffupDiff是您需要尝试的参数,直到找到一个可以带来良好效果的值。

关于c - 使用opencv分割图像中的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11188850/

10-12 16:11