当前位置:  开发笔记 > 人工智能 > 正文

图像失真算法的资源

如何解决《图像失真算法的资源》经验,为你挑选了3个好方法。

我在哪里可以找到图像失真的算法?有很多关于Blur和其他经典算法的信息,但是很少有更复杂的算法.特别是,我对旋转效果图像失真算法很感兴趣.



1> Chris Johnso..:

我找不到任何参考文献,但我可以基本了解失真效果的工作原理.

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

为了生成失真图像,在x和y上循环,使用逆失真函数从(x,y)计算点(u,v),并将(x,y)处的颜色分量设置为与那些相同at(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 = a*(x*x+y*y)



2> PhiLho..:

在Jerry的Java Image Filters中有很多图像过滤器/效果的Java实现.也许你可以从那里获取灵感.


我希望我可以投票10次.非常感谢 :)

3> Lou Franco..:

漩涡和类似的漩涡是像素位置上的矩阵变换.您可以创建一个新图像并从图像上的位置获取颜色,该位置是通过将当前位置乘以矩阵得到的.

矩阵取决于当前位置.

这是一个很好的CodeProject,展示了如何做到这一点

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

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有