iOS和Android算法或库用于羽化图像的边缘,类似于photoshop的

时间:2015-09-02 20:12:08

标签: android ios algorithm image-processing

我正在寻找适用于(最好)或算法的iOS和Android库,它可以帮助我像在Photoshop中处理图像边缘一样。下图显示了算法的预期效果。我不感兴趣羽化图像的边界,只是alpha边缘。我一直在寻找能够在没有运气的情况下完成它几天的算法。任何帮助将不胜感激。

Feathering Image

1 个答案:

答案 0 :(得分:6)

假设你有alpha通道(比如带有透明背景的照片),似乎常规的痉挛模糊矩阵应该让你满意。

然而,您应该只通过ALPHA频道而不是通过RGB频道。

检查模糊滤镜: https://en.wikipedia.org/wiki/Kernel_%28image_processing%29

您对盒子模糊/高斯模糊感兴趣。但是为了使这种效果更加平滑 - 你应该使用更大尺寸的矩阵。

算法满足您需求的原因是,如果所有周围像素都有alpha 0 - 它仍然是0.如果255 - 它将保持255.只有alpha 0/255之间边界区域的像素会受到影响。

修改

请检查这个小提琴(在ff中真的很慢): http://jsfiddle.net/5L40ms65/

您可以在代码末尾查看算法。自实施以来我注意到: - 如果所有neigbour像素都是255或0(alpha通道),则无需模糊 - 在其他情况下还需要模糊RGB

一般来说:

RADIUS = 2 (makes total width of matrix = 5)
For x = 0..width
  for y = 0..width
    if all pixels in square of radius 2 are alpha = 0
      do nothing
    elsif all pixels in square have alpha = 255
      do nothing
    else
      pixel[x][y].RGB = average RGB of adjacent pixels where alpha != 0
      pixel[x][y].ALPHA = average ALPHA in square

radius = 2

的结果示例

当然这是一个相当概念的程序,有很多地方可以进行记忆和调整这个脚本,但是它应该能够清晰地显示出来。

enter image description here