我一直在研究二维数字信号处理。我正在做的是关于数字图像的去噪:
我想从图像中去除的噪声类型就像高斯噪声和“盐和胡椒”。供您参考,我打算使用巴特沃斯低通滤波器来消除噪声。这是我在matlab中使用的代码。
功能高通
function [ out ] = butterhp( im,d,n )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
h=size(im,1);
w=size(im,2);
[x,y]=meshgrid(-floor(w/2):floor(w-1)/2); -floor(h/2):floor(h-1)/2;
out= 1./(1.+(d./(x.^2+y.^2).^0.5).^(2*n));
end
功能低通
function [ out] = butterlp( im,d,n)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
out=1-butterhp(im,d,n);
end
matlab代码
a = imread('penang.jpg')
f = rgb2gray(a);
k = imnoise(f,'gaussian')
lp=butterlp(k,15,1);
af=fftshift(fft2(k));
aflp=af.*lp;
aflpi=ifft2(aflp)
noise = uint8(real(aflpi));
imshow(noise)
运行代码,这就是我得到的。
所以,我的问题是当我尝试通过调整“n阶”和“截止频率”的数量来过滤它以使其看起来更清晰时,它似乎不起作用。它仍然像那样给我模糊的画面。

