Matlab运动模糊,维纳滤波

Matlab运动模糊,维纳滤波
⼀、⽬标:
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
% @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(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两组对象,发现维纳滤波复原后的图像噪声⽐复原前图像噪声更严重。

本文发布于:2024-09-22 18:31:07,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/477275.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   噪声   运动
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议