一、实验目的

(1)了解图像复原的目的及意义,加深对图像复原理论的认识。

(2)掌握维纳滤波复原基本原理。

(3)掌握约束最小二乘方复原方法。

(4)掌握盲解卷积复原方法

二、实验内容

 (1)维纳滤波复原。

(2)约束最小二乘方复原

(3)盲解卷积复原

三、实验代码及结果、分析

(1)维纳滤波复原

  • 代码:

I=imread('E:\大三课件\大三下\数字图像处理\实验\实验5\lena.jpg');

I=rgb2gray(I);

noise=5*randn(size(I));

noise = noise - min(min(noise));

J  = double(I) +noise;

R1=wiener2(J,[10 10]);    %未知噪声

R2=wiener2(J,[10 10],noise);  %已知噪声分布

figure

subplot(2,2,1),imshow(uint8(I));title('原始图像');

subplot(2,2,2),imshow(uint8(J));title('退化图像');

subplot(2,2,3),imshow(uint8(R1));title('盲复原');

subplot(2,2,4),imshow(uint8(R2));title('非盲复原');

  • 结果:

  • 分析:
  1. 维纳滤波又叫最小均方差滤波,它的目标是找到一个原图像f的估计图像f',使得它们之间的均方误差最小。  e^2 = E((f-f')^2)
  2. randa()函数是产生随机噪声,nosize应该是一个矩阵,min(min(noise))表示先取每列中的最小值,再取最小值中的最小值
  3. 关于维纳滤波函数有wiener2和deconvwnr,分别适用于灰度图像和彩色图像
  4. R1为未知噪声的分布,R2为已知噪声分布

(2)约束最小二乘方复原方法

  • 代码:

I=imread('E:\大三课件\大三下\数字图像处理\实验\实验5\lena.jpg');

I=rgb2gray(I);I = im2double(I);[hei,wid,~] = size(I);

PSF = fspecial('motion', 21, 11);%摄像物体逆时针方向以11角度运动了21个像素

blurred = imfilter(I, PSF, 'conv', 'circular');%运动模糊图像

% 逆滤波结果

If = fft2(blurred);Pf = psf2otf(PSF,[hei,wid]);deblurred =ifft2(If./Pf);

% 运动模糊+高斯噪声

noise_mean = 0;noise_var = 0.00001;

blurred_noisy = imnoise(blurred, 'gaussian',noise_mean, noise_var);

% 约束最小二乘法

p = [0 -1 0;-1 4 -1;0 -1 0];P = psf2otf(p,[hei,wid]);

gama = 0.002;%γ设置成0.001左右会有比较好的效果If = fft2(blurred_noisy);numerator = conj(Pf);

denominator = Pf.^2 + gama*(P.^2);

deblurred2 = ifft2( numerator.*If./ denominator );

subplot(2,3,1),imshow(I);title('原始图像');

subplot(2,3,2), imshow(blurred); title('运动模糊图像');

subplot(2,3,3), imshow(deblurred); title('运动模糊复原')

subplot(2,3,4), imshow(blurred_noisy),title('运动模糊+噪声图像')

subplot(2,3,5), imshow(deblurred2),title('无约束最小二乘法复原');

subplot(2,3,6); imshow(deconvreg(blurred_noisy, PSF,0)); title('deconvreg函数复原');%自带的去模糊deconvreg函数

  • 结果:

  • 分析:

1、fspecial('type', len,theta)函数,用于预定于滤波算子,type=motion为运动算子,theta参数表示逆时针方向的角度,len表示运动了len个像素

2、约束最小二乘方滤波效果比自带的去模糊deconvreg函数好

3、约束最小二乘方滤波对高噪声和中等噪声产生结果要好于维纳滤波,对于低噪声两种滤波产生结果基本相等

(3)盲解卷积复原方

  • 代码:

I=checkerboard(8);

PSF=fspecial('gaussian',7,10);

V=.0001;

BlurredNoisy=imnoise(imfilter(I,PSF),'gaussian',0,V);

WT=zeros(size(I));

WT(5:end-4,5:end-4)=1;

INITPSF=ones(size(PSF));

FUN=inline('PSF+P1','PSF','P1');

[J P]=deconvblind(BlurredNoisy,INITPSF,20,10*sqrt(V),WT,FUN,0);

subplot(131);imshow(I);title('原图像');

subplot(132);imshow(BlurredNoisy);title('运动模糊+噪声图像');

subplot(133);imshow(J);title('盲去卷积');

  • 结果:

  • 分析:
  1. 盲解卷积复原是指在没有图像退化先验知识、对退化系统了解不足的条件下,通过观察退化图像的多个图像以某种方式抽出退化信息,进行图像复原
  2. 函数imnoise 是表示添加噪声污染一幅图像,叫做噪声污染图像函数,g=imnoise(f,'localvar',V)将均值为0,局部方差为V的高斯噪声添加到图像f上,其中V是与f大小相同的一个数组,它包含了每一个点的理想方差值
  3. Inline()函数:定义一个内置函数,本质上说跟function干的是一样的事,只不过它可以直接内嵌在命令行里,不用另外单独定义function

数字图像处理实验5图像复原相关推荐

  1. 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理

    数字图像处理实验 一.数字图像处理实验 实验七 图像的复原处理 一.实验目的 熟悉几种在实际应用中比较重要的图像复原技术,学会用MATLAB复原函数对退化图像进行复原处理. 二.实验内容 1.用点扩散 ...

  2. 数字图像处理实验(总计23个)汇总

    以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...

  3. 数字图像处理实验——Python语言实现

    数字图像处理实验--Python语言实现 实验一:数字图像处理入门 实验二:直方图均衡 实验三:线性平滑和锐化--掩模法 实验四:非线性平滑--中值滤波 实验五:非线性锐化--梯度法 GitHub地址 ...

  4. 数字图像处理实验三图像增强

    一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的 感性认识,巩固所学的图像增强的理论知识和相 关算法. (2)熟练掌握直方图均衡化和直方图规定化的计算过 程. (3)熟练掌握空域滤波中常 ...

  5. 数字图像处理实验四图像频域增强

    一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法. (2)熟练掌握低通.高通.带通.同态滤波器的使用方法,明确不同性质的滤波器对图像的影响 ...

  6. 实验1 数字图像处理的MATLAB基础,《数字图像处理(实验部分)》实验1_数字图像处理中MATLAB使用基础...

    <数字图像处理(实验部分)>教案 实验一:数字图像处理中MATLAB使用基础实验 一. MATLAB软件安装 二. 进入MATLAB运行环境 三. MATLAB编程基础 3.1.变量 预定 ...

  7. matlab数字图像实验报告,数字图像处理实验报告(matlab)

    数字图像处理实验报告(matlab) 学院:自动化学院 班级:电081班 姓名:李林树 学号:40850099 2011年10月 实验一 直方图均衡化 一. 实验目的: 1. 熟悉图像数据在计算机中的 ...

  8. 数字图像处理——实验一 Python中数字图像处理的基本操作

    数字图像处理--实验一 Python中数字图像处理的基本操作 一.实验目的 二.实验主要仪器设备 三.实验原理 3.1 数字图像的表示和类别 3.2 opencv-python图像文件格式 四.实验内 ...

  9. c语言米粒数实验报告,数字图像处理实验报告米粒.doc

    数字图像处理实验报告米粒 一.任务描述 本次试验的主要任务是用matlab编写程序确定图1(原始图像)中的米粒个数,达到能辨认连接的两个米粒和不足一个的米粒的精确度,并计算出了米粒的平均大小,标识出了 ...

最新文章

  1. 2017图灵奖出炉:Google母公司董事长和杰出科学家共获殊荣
  2. JAVA框架Struts2 Action类
  3. windows环境下安装nodeJS和express,一直提示command not found-配置环境变量
  4. 云付认证已通过可以支付吗_海科融通丨刷新支付日常问题【附交易操作步奏】...
  5. abaqus生成adams柔性体_1:ABAQUS有限元分析-ABAQUS软件介绍
  6. Sequence I
  7. XcodeGhost相关的十个问题
  8. css3 图标效果,css3图标_纯CSS3图标旋转效果代码
  9. 乐高叉车wedo教案_乐高wedo20课程教案
  10. 详解24个经典股票技术指标(二)
  11. hp打印机被识别为了usb大容量存储
  12. MBR10100FCT-ASEMI肖特基二极管MBR10100FCT
  13. 计算机原理八字,讲解八字理论
  14. 系统部署在服务器,如何把系统部署在云服务器
  15. 斯坦福21秋季:实用机器学习-李沐课程笔记
  16. 上机练习(2019.11.19)
  17. 考研复试面试专业问题
  18. 前端JavaScript+HTML
  19. 安装配置webpack webpack不是内部或外部命令
  20. UnityShader崩坏渲染解析系列(3)--高光、Dither效果、Rim、特殊状态

热门文章

  1. java定时器只执行一次_面试阿里P6,却被MySQL难倒,二战阿里,挤进天猫团队(Java岗)...
  2. 图灵奖大佬+谷歌团队,为通用人工智能背书!CV 任务也能用 LM 建模!
  3. MSON,让JSON序列化更快
  4. 征文 | 2022年全国知识图谱与语义计算大会(CCKS 2022) 征稿通知
  5. 论文浅尝 - ACL2020 | 用于实体对齐的邻居匹配网络
  6. 论文浅尝 | 基于神经网络的推理(DeepMind Relational Reasoning)
  7. 如何通过反射来解决AlertDialog标题由于字数过多显示不全的问题
  8. 国科金:共融机器人基础理论与关键技术研究重大研究计划
  9. python enumerate用法总结(转)
  10. 指针和数组替换和区别