图像失真算法资源
graphics
image
image-processing
5
0

在哪里可以找到图像失真的算法?关于模糊和其他经典算法的信息太多,但是对于更复杂的算法却很少。我尤其对涡旋效应图像失真算法感兴趣。

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

Jerry的Java Image Filters中有很多图像过滤器/效果的Java实现 。也许您可以从那里得到启发。

收藏
评论

我找不到任何参考,但是我可以给出失真效果如何工作的基本概念。

失真的关键是一个函数,该函数在失真的图像中获取两个坐标(x,y),并将其转换为原始图像中的坐标(u,v)。这指定了失真的反函数,因为它将扭曲的图像带回到原始图像

要生成失真的图像,请在x和y上循环,使用逆失真函数从(x,y)计算点(u,v),并将(x,y)的颜色分量设置为与这些相同位于原始图像的(u,v)。通常使用插值法(例如http://en.wikipedia.org/wiki/Bilinear_interpolation )来确定(u,v)处的颜色,因为(u,v)通常不完全位于像素中心,但是而不是像素之间的某个小数点。

旋流实质上是一种旋转,其中旋转角度取决于距图像中心的距离。一个例子是:

a = amount of rotation
b = size of effect

angle = a*exp(-(x*x+y*y)/(b*b))
u = cos(angle)*x + sin(angle)*y
v = -sin(angle)*x + cos(angle)*y

在这里,为简单起见,我假设漩涡的中心在(0,0)。通过从变形函数之前的x和y中减去旋涡位置坐标,并将其加到u和v之后,可以将旋涡放置在任何位置。

周围有多种旋涡效果:某些旋涡效果(如上)仅在局部区域旋涡,并且旋涡的数量朝向图像边缘减少。其他的则增加了朝向图像边缘的漩涡。这种事情可以通过用angle =线来完成,例如

angle = a*(x*x+y*y)
收藏
评论

有一个新的图形库有很多功能

http://code.google.com/p/picasso-graphic/

收藏
评论

漩涡和其他类似漩涡是像素位置上的矩阵变换。您制作一张新图像,并从将当前位置乘以矩阵所获得的图像位置上的颜色来获取颜色。

矩阵取决于当前位置。

这是一个很好的CodeProject显示如何做

http://www.codeproject.com/KB/GDI-plus/displacementfilters.aspx

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号