图像变形 - 凸起效应算法

ran*_*dom 19 algorithm image image-processing

可以指出图像变形算法吗?专门用于凸起效果?

Dr.*_*ius 22

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

如果你这样做:

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

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

  x -> rn*Cos[a] + .5 
  y -> rn*Sin[a] + .5  
Run Code Online (Sandbox Code Playgroud)

你得到:

在此输入图像描述

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

编辑

让我们看看我是否理解你关于翘曲的评论.使用生成以下图像

rn = r^k {k: 1 ... 2}: 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 你真的不需要进入三角学.`Cos [a] =(x - .5)/ r`和`Sin [a] =(y - .5)/ r` (4认同)

Agn*_*kas 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);
}
Run Code Online (Sandbox Code Playgroud)

原版的:

在此输入图像描述

爆炸:

在此输入图像描述

爆:

在此输入图像描述

干杯!