数字图像处理

  • 格式:doc
  • 大小:768.00 KB
  • 文档页数:7

南京工程学院
通信工程学院
实验报告课程名称数字图像处理实验项目名称图像的复原
实验学生班级
实验学生姓名
同组学生姓名
实验时间
实验地点
实验成绩评定
指导教师签字
年月日
一.实验目的
1. 掌握退化模型的建立方法。

2. 掌握图像恢复的基本原理。

二.实验设备
安装有MA TLAB 软件的计算机
三.实验原理
一幅退化的图像可以近似地用方程g=Hf+n 表示,其中g 为图像,H为变形算子,又称为点扩散函数(PSF ),f 为原始的真实图像,n 为附加噪声,它在图像捕获过程中产生并且使图像质量变坏。

其中,PSF 是一个很重要的因素,它的值直接影响到恢复后图像的质量。

I=imread(‘peppers.png’);
I=I(60+[1:256],222+[1:256],:);
figure;imshow(I);
LEN=31;
THETA=11;
PSF=fspecial(‘motion’,LEN,THETA);
Blurred=imfilter(I,PSF,’circular’,’conv’);
figure;imshow(Blurred);
MATLAB 工具箱中有4 个图像恢复函数,如表3-1 所示。

这4 个函数都以一个PSF 和模糊图像作为主要变量。

deconvwnr 函数使用维纳滤波对图像恢复,求取最小二乘解,deconvreg 函数实现约束去卷积,求取有约束的最小二乘解,可以设置对输出图像的约束。

deconvlucy 函数实现了一个加速衰减的Lucy-Richardson 算法。

该函数采用优化技术和泊松统计量进行多次迭代。

使用该函数,不需要提供有关模糊图像中附加噪声的信息。

deconvblind 函数使用的是盲去卷积算法,它在不知道PSF 的情况下进行恢复。

调用deconvblind 函数时,将PSF 的初值作为一个变量进行传递。

该函数除了返回一个修复后的图像以外,还返回一个修复后的PSF。

下面以维纳滤波和约束去卷积为例说明图像恢复的实验原理。

deconvwnr 使用维纳滤波对图像恢复
deconvreg 对图像进行约束去卷积
deconvlucy 用Lucy-Richardson 算法实现图像恢复
deconvblind 用盲去卷积算法实现图像恢复
1. 维纳滤波
使用deconvwnr 函数可以利用维纳滤波方法恢复图像。

在图像的频率特征和附加噪声已知的情况下,Wiener 滤波比较有效。

本例演示了维纳滤波器的性能,同时也演示了PSF 的重要性。

得到准确的PSF 时,恢复的结果会比较好。

I=imread(‘peppers.png’);
I=I(10+[1:256],222+[1:256],:);
LEN=31;
THETA=11;
PSF=fspecial(‘motion’,LEN,THETA);
Blurred=imfilter(I,PSF,’circular’,’conv’);
wnrl=deconvwnr(Blurred,PSF);
imshow(wnrl);
2. 约束去卷积
采用deconvreg 函数可以对图像进行约束去卷积。

当知道附加噪声的部分信息时,使用约束去卷积实现图像恢复比较有效。

(1)将一幅图像读入MATLAB 工作空间。

本例使用裁剪来减小要恢复的图像的大小。

I=imread('flowers.tif');
I=I(10+[1:256],222+[1:256],:);
figure;imshow(I);
(2 )创建PSF
PSF=fspecial(‘gaussian’,11,5);
(3)模糊化图像并添加噪声。

Blurred=imfilter(I,PSF,’conv’);
V=0.02;
BlurredNoisy=imnoise(Blurred,’gaussian’,0,V);
figure;imshow(BlurredNoisy);
(4 )用deconvreg 函数恢复图像,指定PSF 和噪声幂次NP 。

NP=V*prod(size(I));
[reg1 LAGRA]=deconvreg(BlurredNoisy,PSF,NP);
figure,imshow(reg1);
四.实验内容
选择一幅清晰图像,对该图像进行模糊化处理,然后分别采用逆滤波、维纳滤波和约束去卷积恢复原来图像,比较各图像恢复方法的恢复效果。

五.实验步骤与结果
将一张图片
1、(1)选择一幅清晰图像,对该图像进行模糊化处理
I=imread('b.jpg'); %将图像b.tif读入MATLAB
I=I(60+[1:256],222+[1:256],:); %剪切图像
figure;
imshow(I);
LEN=31; %运动位移
THETA=11; %运动角度
PSF=fspecial('motion',LEN,THETA); %围绕一幅有着LEN个像素的图像线性运动时,输出
%一个滤波器
Blurred=imfilter(I,PSF,'circular','conv'); %得到运动模糊图像
figure;
imshow(Blurred);结果如图所示:
原始图像模糊化后的图像
(2)、使用deconvwnr 函数可以利用维纳滤波方法恢复图像。

I=imread('b.jpg');
I=I(10+[1:256],222+[1:256],:); %剪切图像
LEN=31; %运动位移
THETA=11; %运动角度
PSF=fspecial('motion',LEN,THETA); % 运动模糊
Blurred=imfilter(I,PSF,'circular','conv'); % 得到运动模糊图像wnrl=deconvwnr(Blurred,PSF); % 维纳滤波
imshow(wnrl);
结果如图所示:
2,、(1)将一幅图像读入MATLAB 工作空间。

本例使用裁剪来减小要恢复的图像的大小。

I=imread('a.jpg');
I=I(10+[1:256],222+[1:256],:); %剪切图像
figure;imshow(I);
结果如图所示:
(2)创建PSF
PSF=fspecial('gaussian',11,5); % 高斯模糊
(3)模糊化图像并添加噪声
Blurred=imfilter(I,PSF,'conv');% 得到高斯噪声模糊图像
V=0.02;
BlurredNoisy=imnoise(Blurred,'gaussian',0,V); % 加高斯噪声figure;imshow(BlurredNoisy);
(4)用deconvreg函数恢复后图像,指定PSF和噪声幂次NP。

NP=V*prod(size(I));
[reg1 LAGRA]=deconvreg(BlurredNoisy,PSF,NP);% 约束最小二乘滤波figure,imshow(reg1);
六.实验感想
通过本次实验,让自己对于图像退化模型建立以及图像恢复的基本原理有了进一步的理解与掌握,对清晰图像的模糊化处理,然后分别采用逆滤波、维纳滤波和约束去卷积恢复原来的图像,培养了自己多角度的看待问题的能力,感谢老师的指导和同学的帮住。