有没有办法使用 GPUImage 进行洪水填充?

Is there a way to flood fill using GPUImage?

我正在使用 GPUImage 边缘检测器为文本创建边缘边界。然后我想将这些文本元素转换为实体而不是轮廓。我能想到的第一个做法是用洪水填满该地区。 有没有办法使用 GPUImage 进行洪水填充,或者有更好的方法来达到我想要的结果?

GPUImage 基于顶点和片段着色器对输入图像数据的应用。不幸的是,标准的洪水填充算法并不适合这些着色器。

洪水填充的计算方式通常是一个像素的结果取决于另一个像素的结果。这使得它们难以在片段着色器中以并行方式计算。也许您可以为 an iterative calculation 装配一些东西,但这可能是一个最好在 CPU 端处理的操作。

除此之外,如果您的目标是突出显示文本并隐藏其余部分,可能还有其他方法可以实现此目的。我已经看到自适应阈值(基于大面积周围像素的框模糊的阈值)可以做到这一点,您可以通过 运行 预先进行双边模糊来帮助实现这一点(双边模糊可以模糊图像,同时保留尖锐的边缘,将这些边缘增强为边界)。

根据您的具体需求,这可能是一个更广泛的独立于语言的图像处理问题,Signal Processing 的人可能会提供帮助。