1

我正在使用 4-Way Floodfill 算法。

我有一个带有黑色线条的透明图像。

那是凝视点图像(没有颜色)。

在此处输入图像描述

在这张图片中填充颜色后,它看起来像这样

在此处输入图像描述

请帮助我,让我知道我该怎么做才能正确填充。

4

2 回答 2

0

我在其他项目中使用并实现了自己的 FloodFill,算法贯穿整个绘制过程,寻找封闭空间,然后在它们内部(或外部)绘制。

您的问题发生在世界上每个填充平局的工具上,问题是一样的,空间不是 100% 封闭的。

填充算法逐个像素地进行,当它检测到黑色像素时,它会停止。例如,水肺司机的手臂不够粗或上面有洞,洪水填充算法设法通过它而不会将其检测为空白空间。

除非我们接受您的项目并对其进行分析,否则这里没有人能告诉您为什么,所以我能提供的最好的就是关于您的错误可能在哪里的指南。

于 2013-10-19T08:33:51.230 回答
0

我尝试了一个图像的代码,该图像周围有一个非常精确的定义边界(从这里),它似乎可以与该图像一起工作。我可能建议,如果您放大图像,边缘周围会有一些灰色锯齿,不会被填充。也许该算法有一个可以调整的阈值函数?

尝试设置 andTolerance 值(我尝试了 4 似乎改进了我的示例)。

//Call function to flood fill and get new image with filled color
    UIImage *image1 = [self.image floodFillFromPoint:tpoint withColor:newcolor andTolerance:4];
于 2013-10-19T10:57:14.180 回答