MATLAB图像复原系统

matlab图像恢复

一、实验类型:验证性实验

二、实验目的

1. 掌握退化模型的建立方法。

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

三、实验设备:安装有MATLAB 软件的计算机

四、实验原理

一幅退化的图像可以近似地用方程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);

五、实验内容

选择一幅清晰图像,对该图像进行模糊化处理,然后分别采用逆滤波、 维纳滤波和约束去卷积恢复原来图像,比较各图像恢复方法的恢复效果。

六、实验步骤与结果

将一张图片保存在C盘,保存名为0.jpg

1、(1)选择一幅清晰图像,对该图像进行模糊化处理

I=imread(‘0.jpg’);

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);


结果如图所示:


v2-3a6a9e5a8abc07ec6d11aa79bdcab918_b.jpg

v2-17a46ac63dc5ba612527ab76786192fc_b.jpg


原始图像 模糊化后的图像

(2)、使用deconvwnr 函数可以利用维纳滤波方法恢复图像。

I=imread(‘0.jpg’);

LEN=31;

THETA=11;

PSF=fspecial(‘motion’,LEN,THETA);

Blurred=imfilter(I,PSF,’circular’,’conv’);

wnrl=deconvwnr(Blurred,PSF);

imshow(wnrl);

结果如图所示:


v2-12ee39d07164c9c3c32021412b99dd96_b.jpg


2,、(1)将一幅图像读入MATLAB 工作空间。本例使用裁剪来减小要恢复的图像的大小。

I=imread('0.jpg');

figure;imshow(I);

结果如图所示:


v2-2ace6aee58d3ec906bd094942e58416f_b.jpg



(2)模糊化图像并添加噪声。

Blurred=imfilter(I,PSF,’conv’);

V=0.02;

BlurredNoisy=imnoise(Blurred,’gaussian’,0,V);

figure;imshow(BlurredNoisy);


v2-c7699c892722cd7448a29ea4148bca2c_b.jpg


(3 )用deconvreg 函数恢复图像,指定PSF 和噪声幂次NP 。

NP=V*prod(size(I));

[reg1 LAGRA]=deconvreg(BlurredNoisy,PSF,NP);

figure,imshow(reg1);


v2-8912f186d9357447f0cb65a54d2e7c6f_b.jpg

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值