图像变形 - 凸起效应算法

时间:2011-02-20 06:28:22

标签: image algorithm image-processing

可以指出图像变形算法吗?特别是对于膨胀效应?

2 个答案:

答案 0 :(得分:22)

看看我是否理解你想要的东西。假设您的图像坐标从0到1。

如果你这样做:

r = Sqrt[(x - .5)^2 + (y - .5)^2]
a = ArcTan[x - .5, y - .5]
rn = r^2.5/.5 

然后根据以下内容重新映射您的像素:

  x -> rn*Cos[a] + .5 
  y -> rn*Sin[a] + .5  

你得到:

enter image description here

您可以调整参数以获得更大或更小的凸起。

修改

让我们看看我是否理解你关于翘曲的评论。使用

生成以下图像
rn = r^k {k: 1 ... 2}: 

enter image description here

答案 1 :(得分:14)

GLSL代码版本:

uniform sampler2D tex;

void main()
{
 vec2 cen = vec2(0.5,0.5) - gl_TexCoord[0].xy;
 vec2 mcen = - // delete minus for implosion effect
      0.07*log(length(cen))*normalize(cen);
 gl_FragColor = texture2D(tex, gl_TexCoord[0].xy+mcen);
}

原:

enter image description here

爆炸:

enter image description here

内爆:

enter image description here

喝彩!