数字图像处理实验六--图像复原

数字图像处理实验六

(图像复原)

实验内容:
  1. 基于均值滤波器的图像复原。

  2. 基于顺序统计滤波器的图像复原。

  3. 基于带阻滤波器的图像复原。

实验步骤:
  1. 使用给定的图像cameraman,添加高斯噪声,所使用的均值滤波器包括算术均值滤波器、几何均值滤波器和逆谐波滤波器。
img = imread('cameraman.tif');
figure();
subplot(3,2,1);
imshow(img);xlabel('原始图像');%显示原图像

img_noise = double(imnoise(img,"gaussian",0.06));%对图像附加高斯噪声
subplot(3,2,2);
imshow(img_noise,[]);xlabel('高斯噪声污染的图像');

img_mean = imfilter(img_noise',fspecial('average',3));%算术均值滤波
subplot(3,2,3);
imshow(img_mean,[]);xlabel('3x3算术均值滤波器滤波');

img_mean=exp(imfilter(log(img_noise),fspecial('average',3)));%几何均值滤波
subplot(3,2,3);
imshow(img_mean,[]);xlabel('3x3几何均值滤波器滤波');

Q=-1.5;
img_mean = imfilter(img_noise.^(Q+1),fspecial('average',3))./imfilter(img_noise.^Q,fspecial('average',3));
subplot(3,2,4);
imshow(img_mean,[]);xlabel('Q=-1.5的逆谐波滤波器滤波');

Q=1.5;
img_mean = imfilter(img_noise.^(Q+1),fspecial('average',3))./imfilter(img_noise.^Q,fspecial('average',3));
subplot(3,2,5);
imshow(img_mean,[]);xlabel('Q=1.5的逆谐波滤波器滤波');

效果图:高斯
2.使用给定的图像cameraman,添加椒盐噪声,所使用的滤波器包括算术均值滤波器和中值波滤波器。

img = im2gray(imread('cameraman.tif'));
figure();
subplot(3,2,1);
imshow(img);xlabel('原始图像');

img_noise=double(imnoise(img,'salt & pepper',0.06));%"椒盐"噪声
subplot(3,2,2);
imshow(img_noise,[]);xlabel('“椒盐”噪声污染的图像');

img_mean=imfilter(img_noise,fspecial('average',5));
subplot(3,2,3);
imshow(img_mean,[]);xlabel('均值滤波效果');

img_median=medfilt2(img_noise);
subplot(3,2,4);
imshow(img_median,[]);xlabel('中值滤波效果');
img_median2 = medfilt2(img_median);
subplot(3,2,6);
imshow(img_median2,[]);xlabel('再次中值滤波效果');

效果图:在这里插入图片描述
3.利用高斯带阻滤波器实现对含有周期噪声的lenazhouqizaosheng.jpg图像进行复原。

I = imread('lenazhouqizaosheng.jpg'); 
[M,N]=size(I);P=I;
for i=1:M
    for j=1:N
        P(i,j)=P(i,j)+20*sin(20*i)+20*sin(20*j);
    end
end
figure();
subplot(3,2,1);
imshow(I);xlabel('原始图像');
subplot(3,2,2);
imshow(P);xlabel('加噪之后的图像');
IF = fftshift(fft2(I));%对原始图像进行傅里叶变换并将原点移到中心
IFV=log(1+abs(IF));%原始图像的频谱
PF=fftshift(fft2(P));%对加噪图像进行傅里叶变换并将原点移到中心
PFV=log(1+abs(PF));%加噪图像的频谱
subplot(3,2,3);
imshow(IFV,[]);xlabel('原始图像频谱');
subplot(3,2,4);
imshow(PFV,[]);xlabel('加噪图像频谱');
freq = 50;%设置带阻滤波器的中心频谱
width = 5;%设置带阻滤波器的频带宽度
ff = ones(M,N);
for i=1:M
    for j=1:N
        ff(i,j)=1-exp(-0.5*((((i-M/2)^2+(j-N/2)^2)-freq^2)/(sqrt(i-M/2)^2+(j-N/2)^2)*width)^2);
        %高斯带阻滤波器
    end
end
subplot(3,2,5);
imshow(ff,[]);xlabel('高斯带阻滤波器');%显示高斯带阻滤波器
out = PF.*ff;%矩阵点乘实现频域滤波
out = ifftshift(out);%原点移到左上角
out = ifft2(out);%傅里叶逆变换
out = abs(out);%取绝对值
out = out/max(out(:));%归一化
subplot(3,2,6);
imshow(out,[]);xlabel('滤波效果图');%显示滤波效果图

效果图:在这里插入图片描述

问题讨论:

实验中图像显示了经过3x3算术均值滤波器和同样尺寸的几何均值滤波器滤除噪声的结果。尽管这两种噪声滤波器都对噪声的衰减起到了作用,但是几何均值滤波器并没有想算术均值滤波器那样让图像变得模糊。两种逆谐波均值滤波器的滤波结果不如算术均值滤波和几何均值滤波器的滤波效果好。

​对于脉冲噪声,均值滤波基本上没起作用,而中值滤波的效果很明显,经过多次中值滤波处理,噪声可以逐渐消除。重复使用中值滤波器处理可能会使图像模糊化。

​对于周期性噪声,使用高斯带阻滤波器可以更好的消除噪声,使用小卷积模板的直接空间域滤波方式是不可能取得很好的滤波效果的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值