一、目标:

  1. 任选一幅彩色风景图片作为源图像,设置不同的模糊参数实现任一副图像的运动模糊(fspecial,imfilter函数),再用imadd和imnoise给图像添加不同类型的噪声,显示噪声图像。
  1. 对1产生的图像分别进行复原,选用维纳滤波器进行图像复原,显示处理结果。

二、函数分析:

1、fspecial()

定义:创建预定义的二维过滤器

形式:h = fspecial('motion',len,theta)

描述:h = fspecial('motion',len,theta),返回一个过滤器,使其在与图像卷积后近似相机的线性运动。len指定运动的长度,theta指定逆时针方向的运动角度(以度为单位)。过滤器将成为水平和垂直运动的矢量。默认的len是9,默认的theta是0,这对应于9个像素的水平运动。

2、imfilter()

定义:多维图像的N-D滤波

形式:B = imfilter(A,h,options,...)

描述:根据一个或多个指定选项执行多维筛选。其中本实验代码中Blurred1 = imfilter(imgrgb,PSF1,'circular','conv');指的是加入了运动模糊。

3、SNR-信噪比

定义:信号的平均功率和噪声的平均功率之比

形式:信噪比(dB)= 10 * log10(S/N) (dB), 单位(db)作为度量单位。

4、deconvwnr()

定义:基于维纳滤波的去模糊图像

形式:J = deconvwnr(I,psf,nsr)

           J = deconvwnr(I,psf,ncorr,icorr)

           J = deconvwnr(I,psf)

描述:其中J = deconvwnr(I,psf,nsr),使用维纳滤波算法对图像I进行解卷积,返回去模糊图像J。psf是对I进行卷积的点扩展函数(psf)。nsr是加性噪声的噪声与信号功率比。该算法在估计图像和真实图像之间的最小均方误差意义下是最优的。

三、代码展示:

% 1、任选一幅彩色风景图片作为源图像,设置不同的模糊参数实现任一副图像的运
%    动模糊(fspecial,imfilter函数),再用imadd和imnoise给图像添加不同类
%    型的噪声,显示噪声图像。
%
% 2、对1产生的图像分别进行复原,选用维纳滤波器进行图像复原,显示处理结果。
%
% @author: jackma
% @time:   2020-11-9 3:23
% @URL:   www.jackrma.com
% @Copyright:博客所有权归本人和CSDN所有,如有转载请在显著位置给出博文
%            链接和作者姓名,否则本人将付诸法律。
% @edit:   % 1.添加运动模糊
clc
clear
imgrgb = imread('2.jpg'); % 读取彩色图像
figure('Name', '运动模糊参数对比'); %标题
subplot(221);
imshow(imgrgb);
title("原始图像");LEN1 = 50;   % 运动模糊中运动的长度
THETA1 = 11; % 指定逆时针方向的运动角度(以度为单位)
PSF1 = fspecial('motion',LEN1,THETA1); % 用于在与图像卷积后近似相机的线性运动
Blurred1 = imfilter(imgrgb,PSF1,'circular','conv'); % 加入运动模糊
subplot(222);
imshow(Blurred1);
title("模糊图像1-长度50,角度11度");LEN2 = 50;   % 运动长度50
THETA2 = 22; % 运动角度22度,(和模糊图像1的运动角度数据做对照)
PSF2 = fspecial('motion',LEN2,THETA2); %用于在与图像卷积后近似相机的线性运动
Blurred2 = imfilter(imgrgb,PSF2,'circular','conv'); % 加入运动模糊
subplot(223);
imshow(Blurred2);
title("模糊图像2-长度50,角度22度");LEN3 = 100;   % 运动长度100,(和模糊图像1的运动长度数据做对照)
THETA3 = 11; % 运动角度11度
PSF3 = fspecial('motion',LEN3,THETA3);
Blurred3 = imfilter(imgrgb,PSF3,'circular','conv');
subplot(224);
imshow(Blurred3);
title("模糊图像3-长度100,角度11度");% 2.添加噪声(都在模糊图像1基础上增加噪声,方便对照)
NUM1 = 0.05; % 噪声强度5%
figure('Name', '模糊图像1加入噪声并复原'); % 标题
I1 = imnoise(Blurred1, 'salt & pepper', NUM1); %给模糊图像1添加椒盐噪声,强度5%
subplot(221);
imshow(I1);
title('加入强度5%椒盐噪声的图像1');NUM2 = 0.05; % 噪声强度5%
I2 = imnoise(Blurred1, 'gaussian', NUM2); % 给模糊图像1添加高斯噪声,强度5%
subplot(222);
imshow(I2);
title('加入强度5%高斯噪声的图像2');% 3.维纳滤波复原图像
SNR1 = sum(NUM1.^2) / var(im2double(imgrgb(:)).^2);% 信噪比% 加入im2double是因为var前面% 必须是单精度或者双精度
wnr1 = deconvwnr(I1, PSF1, SNR1);
subplot(223);
imshow(wnr1); % 恢复图像1
title('恢复图像1');SNR2 = sum(NUM2.^2) / var(im2double(imgrgb(:)).^2);
wnr2 = deconvwnr(I2, PSF1, SNR2);
subplot(224);
imshow(wnr2); % 恢复图像2
title('恢复图像2');% 保存处理后的图像
imwrite(uint8(Blurred1),'./output/Blurred1.bmp');
imwrite(uint8(Blurred2),'./output/Blurred2.bmp');
imwrite(uint8(Blurred3),'./output/Blurred3.bmp');
imwrite(uint8(I1),'./output/I1.bmp');
imwrite(uint8(I2),'./output/I2.bmp');
imwrite(uint8(wnr1),'./output/wnr1.bmp');
imwrite(uint8(wnr2),'./output/wnr2.bmp');

四、结果展示及分析:

图1 运动模糊不同参数对比图

图2 模糊图像1加入噪声及其复原总图

具体结果对照如下:

图3 模糊图像1 (参数长度50,角度11度)

为方便对照,以下图像都是该图基础上变换

图4 加入强度10%椒盐噪声的图像                                                                            图5 维纳滤波处理图4的结果

图6 加入强度10%高斯噪声的图像                                                                图7 维纳滤波处理图6的结果

显然由结果可得,在图像设置成运动模糊后,并且加入了各种噪声,通过对照图3-图7和图3-图5两组对象,发现维纳滤波对运动模糊处理能力较强,但是也不太突出。但是在图像中增加噪声后,通过对比图4-图5和图6-图7两组对象,发现维纳滤波复原后的图像噪声比复原前图像噪声更严重。

Matlab运动模糊,维纳滤波相关推荐

  1. 基于matlab的运动模糊图像处理,基于matlab运动模糊图像处理

    基于matlab运动模糊图像处理 基于 MATLAB 的运动模糊图像处 理 提醒: 我参考了文献里的书目和网上的一些代码而完成的,所以误差会比较大,目前 对于从网上下载的模糊图片的处理效果很不好, 这 ...

  2. 基于Matlab运动模糊图像复原

    这是正常图像 这是运动模糊图像 模糊图像频谱图中心化 直方均衡化 二值化 相邻暗条纹搜寻示意图 形态学开运算 canny算子边缘检测 1°~ 180°Radon变换估算出运动模糊角度 将频谱图像按估算 ...

  3. 数字图像处理——图像退化(大气湍流模型与运动模糊模型)与图像复原(逆滤波与维纳滤波)

    一.图像退化 一般来说,图像的退化模型可以表示为 其中g(x,y) 表示退化后的图像,h(x,y)表示退化模型,f(x,y)表示原图像,n(x,y)表示噪声. 在频域上面可以表示为 下面介绍常见的两种 ...

  4. matlab 维纳滤波恢复运动模糊,运动模糊恢复专题

    相关背景知识 1.运动模糊的定义 wiki百科上的定义是:运动模糊或运动模糊(motion blur)是静态场景或一系列的图片像电影或是动画中一样快速移动,使物体产生明显运动痕迹. [图片上传失败.. ...

  5. 数字图像处理实验(五)|图像复原{逆滤波和伪逆滤波、维纳滤波deconvwnr、大气湍流扰动模型、运动模糊处理fspecial}(附matlab实验代码和截图)

    文章目录 一.实验目的 二.实验仪器 三.实验原理 四.实验内容 1.逆滤波:选择MATLAB文件夹中的foggy图像作为实验图像. (1)生成退化函数: (2)复原 (a)直接逆滤波 (b)修正函数 ...

  6. matlab starcat_维纳滤波和编码曝光PSF去除运动模糊【matlab】

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%% 作者:WWC %%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  7. 基于MATLAB 的运动模糊图像复原

    基于MATLAB 的运动模糊图像复原 研究目的 在交通系统. 刑事取证中图像的关键信息至关重要, 但是在交通. 公安.银行. 医学.工业监视.军事侦察和日常生活中常常由于摄像设备的光学系统的失真. 调 ...

  8. 基于MATLAB的运动模糊图像处理

    基于MATLAB的运动模糊图像处理 研究目的 在交通系统.刑事取证中图像的关键信息至关重要,但是在交通.公安.银行.医学.工业监视.军事侦察和日常生活中常常由于摄像设备的光学系统的失真.调焦不准或相对 ...

  9. matlab修复模糊图片论文,图像算法论文,关于运动模糊图像复原算法相关参考文献资料-免费论文范文...

    导读:本论文可用于图像算法论文范文参考下载,图像算法相关论文写作参考研究. 周志强 程 姝 季 静 (安徽省标准化研究院,安徽 合肥 230051) [摘 要]运动模糊图像的产生是由于拍摄瞬间摄影镜头 ...

最新文章

  1. CentOS 8 安装图解
  2. Linux学习之crontab定时任务
  3. RHCE-samba服务
  4. 微信小程序—智能小蜜(基于智能语义解析olami开放平台)
  5. Hive远程模式安装指导
  6. 自学python能干什么-普通人学Python能干什么?老男孩Python入门
  7. Delphi ListView基本用法大全
  8. bzoj 1047 理想的正方形
  9. [翻译]Visual Odmetry from scratch - A tutorial for beginners
  10. 用Java实现向Cassandra数据库中插入和查询数据
  11. npm cnpm下载
  12. 习题2_2、韩信点兵
  13. MoveIt! RViz Visual Tools设置
  14. 账龄分析表excel模板_电商数据分析统计模板工作表
  15. MIT-BIH-ECG使用
  16. VMware Workstation 不可恢复错误: (vcpu-1) Exception 0xc0000005 (access viola
  17. CVPR 2021 全部论文链接公布!最新1660篇论文合集!附下载链接
  18. 开源众包公众号--我们的移动端快速发包功能上线了。
  19. php咪咕解析源码,关于咪咕视频的解析就是解析出m3u8
  20. 音视频开发:ffplay使用soundtouch实现倍速播放

热门文章

  1. 终端环境如何下载谷歌网盘google drive文件
  2. python标准库不需要导入即可使用其中的所有对象和方法_2021智慧树网课答案创业基础考试期末答案...
  3. 软件工程 -- 状态转换图
  4. 对Autorun.inf类U盘病毒的攻防
  5. 京淘项目实战开发-01
  6. Hdu-5919 Sequence II(主席树在线求区间不同数)
  7. 美国计算机专业gre314,美国东北大学计算机专业CS硕士录取
  8. 【NDN转发】Community Aware Content Retrieval in Disruption Tolerant Networks 全文翻译
  9. 请设置注册表项HKLMSoftwareMicrosoft.NETFrameworkInstallRoot,指向.NET Framework安装位置(写给我自己备份的免得以后找不到)
  10. 服务端使用GZIP压缩数据