我正在使用 4-Way Floodfill 算法。
我有一个带有黑色线条的透明图像。
那是凝视点图像(没有颜色)。
在这张图片中填充颜色后,它看起来像这样
请帮助我,让我知道我该怎么做才能正确填充。
我正在使用 4-Way Floodfill 算法。
我有一个带有黑色线条的透明图像。
那是凝视点图像(没有颜色)。
在这张图片中填充颜色后,它看起来像这样
请帮助我,让我知道我该怎么做才能正确填充。
我在其他项目中使用并实现了自己的 FloodFill,算法贯穿整个绘制过程,寻找封闭空间,然后在它们内部(或外部)绘制。
您的问题发生在世界上每个填充平局的工具上,问题是一样的,空间不是 100% 封闭的。
填充算法逐个像素地进行,当它检测到黑色像素时,它会停止。例如,水肺司机的手臂不够粗或上面有洞,洪水填充算法设法通过它而不会将其检测为空白空间。
除非我们接受您的项目并对其进行分析,否则这里没有人能告诉您为什么,所以我能提供的最好的就是关于您的错误可能在哪里的指南。
我尝试了一个图像的代码,该图像周围有一个非常精确的定义边界(从这里),它似乎可以与该图像一起工作。我可能建议,如果您放大图像,边缘周围会有一些灰色锯齿,不会被填充。也许该算法有一个可以调整的阈值函数?
尝试设置 andTolerance 值(我尝试了 4 似乎改进了我的示例)。
//Call function to flood fill and get new image with filled color
UIImage *image1 = [self.image floodFillFromPoint:tpoint withColor:newcolor andTolerance:4];