首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像失真算法的资源

图像失真算法的资源
EN

Stack Overflow用户
提问于 2008-10-22 12:31:37
回答 5查看 26.5K关注 0票数 22

在哪里可以找到图像失真的算法?有这么多的信息,模糊和其他经典算法,但很少有更复杂的。特别是,我对涡流效应图像失真算法很感兴趣。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-10-22 12:41:10

我找不到任何参考,但我可以给出一个基本的想法,扭曲的影响如何工作。

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

为了生成畸变图像,一个循环在x和y上,使用反失真函数计算(x,y)的点(u,v),并将(x,y)处的颜色分量设置为与原始图像中(u,v)处的颜色分量相同。通常使用插值(例如内插 )来确定(u,v)处的颜色,因为(u,v)通常不完全位于像素的中心,而是位于像素之间的某个分数点。

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

代码语言:javascript
复制
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=行来实现。

代码语言:javascript
复制
angle = a*(x*x+y*y)
票数 30
EN

Stack Overflow用户

发布于 2008-10-22 16:28:40

曾傑瑞的Java图像滤波器上有很多图像过滤器/效果的Java实现。也许你可以从中吸取灵感。

票数 21
EN

Stack Overflow用户

发布于 2008-10-22 12:44:56

漩涡和其他类似的元素是像素位置上的矩阵变换。您将生成一个新图像,并从图像上的一个位置获取颜色,该位置是通过将当前位置乘以矩阵得到的。

矩阵取决于当前位置。

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

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/225548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档