首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高斯滤波器在频域+ Matlab中的应用

高斯滤波器在频域+ Matlab中的应用
EN

Stack Overflow用户
提问于 2012-12-07 14:59:28
回答 1查看 8K关注 0票数 4

我读过关于频域高斯滤波器的文章,但有些地方我无法理解:

  1. 高斯滤波器总是方阵吗?
  2. 如果1的回答是肯定的,如果我的图像是一个矩形矩阵,会发生什么?在Matlab中,我读取图像,然后用fft2将图像从空域转换到频域,然后用ffshift对图像进行集中处理。我想要的是将图像的频域矩阵乘以高斯滤波矩阵,然后利用ifft2将结果转化为空间域,但由于图像的高斯滤波矩阵和频域矩阵的大小不同,它们不能相乘。(这里我不使用conv2fspectial )。
EN

回答 1

Stack Overflow用户

发布于 2013-03-16 17:30:54

Guassian滤波器实际上是圆形的,因为它是距离中心的距离的函数。使用矩形矩阵是因为它更方便。

要克服大小差异,您可以做的是对过滤器进行零填充:

代码语言:javascript
复制
img = imread( imgFileName ); % read image, use gray-level images here.
IMG = fft2( img ); % Fourier of img
sz = size( img );
h = fspecial( 'gaussian', sz, sigma ); % create a filter with std sigma same size as img
H = fft2( h ); % Fourier of filter
F = IMG.*H; % filter in Fourier space
f = ifft2( F ); % back to spatial domain. 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13765580

复制
相关文章

相似问题

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