我使用的是4向泛洪算法。
我有一个透明的图像与黑线。
这是凝视点图像(无颜色)。

在填充此图像中的颜色后,它看起来如下所示

请帮助我,并让我知道我能做些什么才能正确填充。
发布于 2013-10-19 16:33:51
我在其他项目中使用并实现了自己的FloodFill,算法遍历整个绘制过程,寻找封闭空间,然后在它们内部(或外部)绘制。
你的问题会发生在世界上每一个填充绘图的工具上,问题是相同的,空间不是100%封闭的。
泛洪填充算法逐个像素,当它检测到黑色像素时,它会停止。例如,潜水驱动器的手臂不够粗,或者手臂上有洞,泛洪填充算法设法穿过它,而不会将其检测为空白空间。
这里没有人能告诉你为什么,除非我们拿你的项目进行分析,所以我能提供的最好的是关于你的错误可能在哪里的指南。
发布于 2013-10-19 18:57:14
我试着用一个有非常精确定义的边界的图像(from here)来编写代码,它看起来在这个图像上工作得很好。我建议,也许,如果你放大你的图像,在边缘周围有一些灰色的锯齿,不会被填充。也许算法有一个可以调整的阈值函数?
尝试设置andTolerance值(我尝试了4,这似乎改善了我的示例)。
//Call function to flood fill and get new image with filled color
UIImage *image1 = [self.image floodFillFromPoint:tpoint withColor:newcolor andTolerance:4];https://stackoverflow.com/questions/19463928
复制相似问题