【问题标题】:Image Warping - Bulge Effect Algorithm图像变形 - 凸起效果算法
【发布时间】:2011-06-30 15:34:55
【问题描述】:

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

【问题讨论】:

标签: image algorithm image-processing


【解决方案1】:

看看我是否明白你想要什么。假设您的图像坐标从 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  

你得到:

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

编辑

让我们看看我是否理解您关于翘曲的评论。以下图片是使用

生成的
rn = r^k {k: 1 ... 2}: 

【讨论】:

  • 你并不真的需要进入三角学。 Cos[a] = (x - .5)/rSin[a] = (y - .5)/r
  • 检查此链接中的算法 - davis.wpi.edu/~matt/courses/morph/2d.htm 我们可以有这样的算法来实现凸起效果吗?
  • 谢谢贝利撒留。我现在需要通过向 Android 中的 Sprite 添加网格并将变形应用到它来实现它。我们有一个名为 andEngine 的库,我们可以使用它。我创建了另一个线程以继续进行:stackoverflow.com/questions/5078240/…
  • @user193545 帮不了你。祝你好运!
  • 另见我对这个答案的跟进here
【解决方案2】:

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);
}

原文:

爆炸:

内爆:

干杯!

【讨论】:

  • 如何在Android中使用位图?
猜你喜欢
  • 1970-01-01
  • 2012-08-04
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-01
  • 2011-06-16
相关资源
最近更新 更多