gpt4 book ai didi

matlab - 在频域+ Matlab中使用高斯滤波器

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:28 25 4
gpt4 key购买 nike

我阅读了频域中的高斯滤波器,但这里有些地方我无法理解:

  1. 高斯滤波器会一直是方阵吗?

  2. 如果 1 的答案是肯定的,如果我的图像是矩形矩阵会怎样?在 Matlab 中,我读取图像,然后使用 fft2 将其从空间域转换为频域,然后使用 ffshift 将其集中。我想要的是将图像的频域矩阵乘以高斯滤波矩阵,然后使用ifft2将结果转换到空间域,但是由于高斯滤波矩阵和图像的频域矩阵大小不同,它们不能相乘。 (我在这里没有使用 conv2fspecial)。

最佳答案

高斯滤波器实际上是圆形的,因为它是距中心距离的函数。使用矩形矩阵是因为它更方便。
为了克服大小差异,您可以做的是对过滤器进行零填充:

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.

关于matlab - 在频域+ Matlab中使用高斯滤波器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com