我正在使用4-way floodfill算法。
我有一个带黑色外线的透明图像。
这是凝视点图像(没有颜色)。
在填充此图像中的颜色后,它看起来像这样
请帮助我,让我知道如何才能正确填充。
答案 0 :(得分:0)
我在其他项目中使用并实现了自己的FloodFill,算法通过整个绘制,寻找封闭空间然后在内部(或外部)绘制。
你的问题发生在填充平局的世界上的每一个工具上,问题是相同的,空格不是100%关闭。
泛光填充算法逐像素地进行,当它检测到黑色像素时,它会停止。例如,水肺驱动器的臂不够厚或者上面有孔,洪水填充算法设法通过它,而不是将其检测为空的空间。
除非我们接受您的项目并对其进行分析,否则这里没有人可以告诉您,因此我能提供的最佳信息是您的错误可能出现的指导原则。
答案 1 :(得分:0)
我尝试使用一个图像,该图像周围有一个非常精确定义的边框(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];