数字图像处理图像复原实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像复原
信息132 李佳奇1304010311
一、实验目的
1、熟悉并掌握MATLAB图像处理工具箱的使用;
2、理解并掌握常用的图像的恢复和分割技术。
二、实验内容
空域滤波复原
close all;clear all;clc;
I=imread('d:/zhien.jpg');
I=im2double(I);
I=imnoise(I,'gaussian',0.05);%添加高斯噪声
PSF=fspecial('average',3);
J=imfilter(I,PSF);
K=exp(imfilter(log(I),PSF));
figure;
subplot(131);imshow(I);
subplot(132);imshow(J);
subplot(133);imshow(K);
分析:空域滤波就是在待处理图像中逐点地移动掩模。在每一点(x,y)处,滤波器在该点的响应通过事先定义的关系来计算。对于线性空间滤波,其响应由滤波器系数与滤波掩模扫过区域的相应像素值的乘积之和给出
维纳滤波
I=imread('d:/zhien.jpg');
H=fspecial('motion',50,45);
J=imfilter(I,H,'circular','conv');
subplot(221);imshow(J);
title('运动模糊后的lena.bmp(角度为45)');
J1=imnoise(J,'gaussian',0,0.01);
subplot(222);
imshow(J1);
title('加噪模糊的lena.bmp');%figure;
J2=deconvwnr(J1,H);
subplot(223)
imshow(J2);
title('模糊噪声图像的维纳滤波复原');
noise=imnoise(zeros(size(I)),'gaussian',0,0.01);
NSR=sum(noise(:).^2)/sum(im2double(I(:)).^2);
J3=deconvwnr(J1,H,NSR);
subplot(224)
imshow(J3);
title('引入SNR的维纳滤波复原');
分析:维纳滤波是一种有约束的复原恢复,它综合了退化图像和噪声统计特性两个方面进行了复原处理。维纳滤波,它是使原图像及其恢复图像之间的均方差最小的复原方法。是在假象图像信号可以近似看作平稳随机过程的前提下,按照使恢复的图像与原图像f(x,y)的均方差最小原则来恢复图像。
约束最小二乘法滤波
I= imread('d:/zhien.jpg');
I1=checkerboard(8);
PSF=fspecial('motion',50,45);
V=0.0001; J=imfilter(I,PSF,'circular','conv');
J1=imnoise(J,'gaussian',0,0.01);
subplot(1,2,1); imshow(J1);
title('模糊加噪图像');
NoisePower=V*prod(size(I));
[G,LAGRA]=deconvreg(J,PSF,NoisePower);
subplot(1,2,2); imshow(G);
title('约束最小二乘滤波复原');
分析:
约束最小二乘方图像复原是一种以平滑测度为准则的复原方法。
实验中首先得到运动模糊和高斯噪退化后的图像Zn,然后对图像进行约束最小
平方复原,同时获得最佳复原的参数γ,如果将参数γ的值调大,则图像会比较模
糊,但对噪声的改善效果较为明显,如果将参数γ的值调小,则图像会比较清晰,
但背景会出现一定的噪声。
盲解卷积复原
I=imread('d:/zhien.jpg');
I=im2double(I);
LEN=20;
THETA=20;
PSF=fspecial('motion',LEN,THETA);
J=imfilter(I,PSF,'circular','conv');%运动模糊INITPSF=ones(size(PSF));
[K,PSF2]=deconvblind(J,INITPSF,30);%图像复原figure;
subplot(121);imshow(PSF,[]);
subplot(122);imshow(PSF2,[]);
axis auto;
figure;
subplot(121);imshow(J);%显示退化图像subplot(122);imshow(K);%显示复原图像