首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在频域乘以图像

在频域乘以图像
EN

Stack Overflow用户
提问于 2011-03-22 00:26:35
回答 2查看 2.1K关注 0票数 3

我一直在处理频域中的图像(通过对图像进行DFT或FFT ),我知道空间域中的卷积是频率上的乘法。

所以我的问题是,如果我想在空间域中应用特定的内核(假设是9x9平滑内核),我只需要用9x9滤波器对整个图像进行卷积。现在,如果我想在频域做同样的事情,我是不是同时对图像和内核进行FFT?那么我该如何/乘以什么呢?在我有了新的数据集(图像乘以内核)之后,我只是反转了FFT的方向,这应该会得到与内核在空间域中卷积图像相同的结果,对吧?

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-22 00:43:38

IIRC,设法让你的FFT图像和内核(都是FFT)具有相同的尺寸,然后将两个FFT图像逐个像素相乘,然后对结果进行逆FFT。

注意图像边框的变化(参见FFT理论)。

票数 2
EN

Stack Overflow用户

发布于 2011-03-22 02:53:51

请注意,FFT乘法与循环卷积是相同的(例如,就像数据的边缘被包裹在一起一样)。如果您不想从卷积结果中获得这些圆形边缘效果,您可以至少将卷积内核的非零长度加1来对数据进行零填充。您还必须对卷积内核进行零填充,以使其具有相同的长度。

例如,在您的例子中,您可以使用长度为522的FFT (512 +9+ 1),或者使用具有较小价格因素的长度为540的FFT ( FFTW库可用于非常有效的非2次方FFT ),或者,如果您必须使用2的幂,则可以一直使用零填充,直到长度为1024的FFT。

正如@maola的答案一样,数据的FFT和内核的FFT必须具有相同的长度(否则相乘的频率将不匹配),并且您必须在频域中进行复数乘法。

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

https://stackoverflow.com/questions/5380544

复制
相关文章

相似问题

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