图像复原

1图像复原的而理论模型

定义:在成像过程中,由于成像系统各种因素的影响,可能使获得的图像不是真实景物的完善影像。图像在形成、传播和保存过程中使图像质量下降的过程,称为图像退化。图像复原就是重建退化的图像,使其最大限度恢复景物原貌的处理。图像复原只能尽量使图像接近其原始图像,但由于噪声干扰等因素,很难精确还原。

图像增强与图像复原的区别:图像增强的目的是消除噪声,显现那些被模糊了的细节或简单地突出一幅图像中读者感兴趣的特征,,不考虑图像质量下降的原因。图像复原是利用退化现象的某种先验知识,建立退化现象的数学模型,再根据模型进行反向的推演运算,以恢复原来的景物图像。因而,图像复原可以理解为图像降质过程的反向过程。建立图像复原的反向过程的数学模型,就是图像复原的主要任务。经过反向过程的数学模型的运算,要想恢复全真的景物图像比较困难。所以, 图像复原本身往往需要有一个质量标准, 即衡量接近全真景物图像的程度,或者说,对原图像的估计是否到达最佳的程度。

 

2噪声模型:噪声主要来源于图像的获取和传输过程。

(1)图像传感器的工作情况受各种因素的影响,如图像获取中的环境条件和传感器元器件自身的质量。

(2)图像在传输过程中主要由于所用传输信道被干扰而受到噪声污染。

噪声种类:高斯噪声、瑞利噪声、伽马噪声、指数噪声、均匀分布噪声、脉冲噪声(椒盐噪声)

在matlab命令窗口输入命令绘制概率密度图:

>> x=-4:.1:4;
>> subplot(321)
>> Y1=show_noise_pdf('gaussian',x,0,1);
>> plot(x,Y1);
>> title('高斯');
>> subplot(322)
>> Y2=show_noise_pdf('uniform',x,-3,3);
>> plot(x,Y2);
>> title('均匀');
>> subplot(323)
>> Y3=show_noise_pdf('salt & pepper',x);
>> plot(x,Y3);
>> title('椒盐');
>> subplot(324)
>> Y4=show_noise_pdf('rayleigh',x,1);
>> plot(x,Y4);
>> title('瑞利');
>> subplot(325)
>> Y5=show_noise_pdf('exp',x,1);
>> plot(x,Y5);
>> title('指数');
>> subplot(326)
>> Y6=show_noise_pdf('gamma',x,2,5);
>> plot(x,Y6);
>> title('伽马');

在matlab命令窗口中调用add_noise函数为图像添加噪声,并调用matlab自带函数hist绘制灰度直方图

>>I=imread('square.bmp');
>> J1=add_noise(I,'gaussian',0,10);
>> subplot(321)
>> hist(double(J1(:)),100)
>> title('高斯');
>> subplot(321)
>> J2=add_noise(I,'uniform',-20,20);
>> hist(double(J2(:)),100)
>> title('均匀');
>> subplot(323)
>> J3=add_noise(I,'salt & pepper',0.02);

>> hist(double(J3(:)),100)
>> title('椒盐');
>> subplot(324)
>> J4=add_noise(I,'rayleigh',30);
>> hist(double(J4(:)),100)
>> title('瑞利');
>> subplot(325)
>> J5=add_noise(I,'exp',15);
>> hist(double(J5(:)),100)
>> title('指数');
>> subplot(326)
>> J6=add_noise(I,'gamma',2,10);
>> hist(double(J6(:)),100)
>> title('伽马');

 

3空间滤波

空间滤波器种类:均值滤波器(适于高斯噪声)、统计排序滤波器(适于椒盐噪声)、自适应局部噪声消除滤波器(适于所有噪声)、自适应中值滤波器(适于椒盐噪声)。

在图像中加入0.05的高斯噪声,用中值滤波和自适应滤波进行复原:

>> I=imread('lena.bmp');
>> I0=imnoise(I,'salt & pepper',0.01);
>> I1=medfilt2(I0,[3,3]);
>> I2=adp_median(I0,7);
>> subplot(221);
>> imshow(I);
>> title('原图');
>> subplot(222);
>> imshow(I0);
>> title('椒盐噪声')
>> subplot(223);
>> imshow(I1);
>> title('中值滤波')
>> subplot(224);
>> imshow(I2);
>> title('自适应滤波');

 

4逆滤波复原

(1)退化

%读取原始图像
I=imread('lena.bmp');
figure(1);
subplot(121)
imshow(I)
title('原始图像');
f=im2double(I);

%傅里叶变换
F=fft2(f);
F=fftshift(F);

%执行退化
[M,N]=size(F);
[u,v]=meshgrid(1:M,1:N);
H=exp(-0.0025*((u-M/2).^2+(v-N/2).^2).^(5/6));
F=F.*H;

%傅里叶变换
X=ifftshift(F);
x=ifft2(X);
subplot(122)
x=uint8(abs(x)*256);
imshow(x)
imwrite(x,'lena_t.bmp');
title('退化图像');

(2)复原

%逆滤波
I0=imread('lena_t.bmp');

%阈值为128
I_new1=rev_filter(I0,H,128);

%阈值为108
I_new2=rev_filter(I0,H,108);

%阈值为78
I_new3=rev_filter(I0,H,78);

%阈值为48
I_new4=rev_filter(I0,H,48);
si=zeros(M,N,1,4,'uint8');
si(:,:,1)=I_new1;
si(:,:,2)=I_new2;
si(:,:,3)=I_new3;
si(:,:,4)=I_new4;

%绘图
figure
montage(si)
title('阈值分别为128,108,78,48')

 

5维纳滤波复原

定义:维纳滤波只能解决退化函数,没有加性噪声的问题,维纳滤波又称最小均方误差滤波,综合考虑了退化函数和噪声。

对256*256的lena灰度图像进行退化处理,再添加高斯噪声,对得到的退化图像进行复原步骤如下:

(1)用imnoise()函数添加均值为0,方差为0.001的高斯噪声

(2)将逆滤波和维纳滤波复原效果进行对比。

%维纳滤波与逆滤波
clear;
clc;

%%
I=imread('lena.bmp');

%傅里叶变换
[m,n]=size(I);
FI=fft2(I);
FI=fftshift(FI);

%退化
k=0.0025;
u=1:m;
v=1:n;
[u,v]=meshgrid(u,v);
H=exp((-k).*(((u-m/2).^2+(v-n/2).^2).^(5/6)));
G=FI.*H;

%添加噪声
I0=real(ifft2(fftshift(G)));
I1=imnoise(uint8(I0),'gaussian',0,0.001);
figure(1)
imshow(I1);
imwrite(I1,'lena_wn.bmp')

%%
I1=imread('lena_wn.bmp');

%%逆滤波
I_new=rev_filter(I1,H,48);
figure(2);
imshow(I_new)
title('逆滤波结果');

%维纳滤波
K=0.05;
I_new1=wn_filter(I1,H,48,K);
figure(3);
imshow(I_new1);
title('维纳滤波结果');

从图中可以看出,取同样的半径时,维纳滤波所得图像比逆滤波消除噪声的效果更高

 

6有约束最小二乘复原

 

%约束最小二乘复原
%%
clear,clc
close all

%%产生退化图像
I=checkerboard(8);

%运动模糊的点扩散函数
PSF=fspecial('motion',7,45);

fprintf('点扩散函数:\n');
disp(PSF)

%对图像进行运动模糊滤波
Im1=imfilter(I,PSF,'circular');

%添加高斯噪声
noise=imnoise(zeros(size(I)),'gaussian',0,0.001);
Im=Im1+noise;
%%维纳滤波
Iw=deconvwnr(Im,PSF,0.02);

%约束最小二乘滤波
I=edgetaper(I,PSF);
Iz=deconvreg(Im,PSF,0.2,[1e-7,1e7]);

%%绘图
subplot(221);
imshow(I,[])
title('原始图像');

subplot(222);
imshow(Im,[])
title('退化图像');

subplot(223)
imshow(Iw,[])
title('维纳滤波');

subplot(224)
imshow(Iz,[])
title('最小二乘滤波');

 

7Lucky-Richardson复原

 

%run lucy
%L-R算法图像复原

%%
clear,clc
close all

%%
%棋盘格图像
I=checkerboard(8);

%点扩散函数
PSF=fspecial('gaussian',7,10);

%方差为0.0001
SD=0.01;
In=imnoise(imfilter(I,PSF),'gaussian',0,SD^2);

%%
%使用Lucy-Richardson算法对图像复原
Dampar=10*SD;
LIM=ceil(size(PSF,1)/2);
Weight=zeros(size(In));

%权值weight数组的大小是64*64
%并且有值为0的4像素宽的边界,其余像素都是1
Weight(LIM+1:end-LIM,LIM+1:end-LIM)=1;

%迭代次数为5
NumIt=5;
%利用deconvlucy来复原
J1=deconvlucy(In,PSF,NumIt,Dampar,Weight);

%迭代次数为10
NumIt=10;
J2=deconvlucy(In,PSF,NumIt,Dampar,Weight);

%迭代次数为20
NumIt=20;
J3=deconvlucy(In,PSF,NumIt,Dampar,Weight);

%迭代次数为100
NumIt=100;
J4=deconvlucy(In,PSF,NumIt,Dampar,Weight);

%%绘图
subplot(231);
imshow(I);
title('原图');

subplot(232);
imshow(In);
title('退化图像');

subplot(233);
imshow(J1);
title('迭代5次');

subplot(234);
imshow(J2);
title('迭代10次');

subplot(235);
imshow(J3);
title('迭代20次');

subplot(236);
imshow(J4);
title('迭代100次');

 

8盲去卷积图像复原

%run_blind
%盲去卷积复原
%%
clear,clc
close all

%产生棋盘格图像并进行退化
I=checkerboard(8);
PSF=fspecial('gaussian',7,10);
V=.0001;

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

%%复原
%权值
Weight=zeros(size(I));
Weight(5:end-4,5:end-4)=1;

%点扩散函数的估计值
InitPSF=ones(size(PSF));
[J, P]=deconvblind(BlurredNoisy,InitPSF,20,10*sqrt(V),Weight);
subplot(221);
imshow(BlurredNoisy);
title('退化图像');
subplot(222);
imshow(PSF,[]);
title('点扩展图像');
subplot(223);
imshow(J);
title('盲去卷积复原结果');
subplot(224);
imshow(P,[]);
title('输出的估计点扩展函数');

 

9MATLAB图像复原综合案例-去除照片的运动模糊

%de_motion.m
clear,clc
close all

%%读入图片
I=imread('bicycle.bmp');
if ndims(I)>=3
    I=rgb2gray(I);
end
figure(1);
imshow(I,[])
title('运动模糊图像');

%%去除运动模糊

%水平方向上运动20像素
PSF=fspecial('motion',20,0);

figure(2);
%估计噪声方差
noise_var=0.0001;
estimated_nsr=noise_var/var(double(I(:)));

%维纳滤波
I2=deconvwnr(I,PSF,0.00005);
imshow(I2,[]);
title('维纳滤波复原');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29494.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UBI.city白皮书发布与空投领取方法

在经历了至少5次的全面推翻与重构后,UBI.city的方案终于可以发布了。 UBI.city简介 UBI.city是去中心化组织的动态治理协议,白皮书可在官网 www.ubi.city 中查阅。 随着The DAO在2016年募集了1170万枚ETH(价值约2.45亿美元)&am…

WhatsApp被禁用操作教程|实操WhatsApp解封的过程|2023三月

我是上周被WhatsApp被禁用了,按照网上的方法,点击Support提交,会自动跳转一个邮件,发送到WhatsApp官方,我满心欢喜地等待解封,以为会像大家说的那样,第二天可以解封。 就是点击那个 支持 提交了…

微信网页版解封方法

最近,微信又推出了网页版的【文件传输助手】,也就是说,无需登录客户端的微信,即可进行文件或图片的传输。 网址是 https://filehelper.weixin.qq.com网址巨长,咋一看,又长又难记,玩个锤子 经…

微信小程序-获取用户头像信息以及修改用户头像

这里主要用到button的open-type功能&#xff0c;官网已有说明&#xff1a; 给button设置open-type"chooseAvatar"&#xff0c;来使bindchooseavatar方法生效&#xff0c;在bindchooseavatar指定的函数中获取用户的头像信息 <button open-type"chooseAvata…

小程序中新版本的获取用户头像与昵称:bind:chooseavatar

前言&#xff1a; 自从微信官方把获取用户昵称与头像的功能改动以后&#xff0c;给我们开发和用户的操作又增加了很多负担&#xff0c;但是没办法&#xff0c;只能使用最新的使用方法了。 小程序用户头像昵称获取规则调整公告 新版实现效果&#xff1a; 注意&#xff0c;真机…

关于QQ群头像以及微信讨论组头像的工具类

QQ群头像以及微信讨论组头像工具类介绍 介绍&#xff1a; 由于段时间公司项目需求&#xff0c;在翻了网上很多代码后发现&#xff0c;很多人用的是自定义View的办法来实现此类头像的效果&#xff0c;但是&#xff0c;这样一来就必须改变项目中原有的控件&#xff0c;而且当需要…

桌面宠物!

电脑桌宠&#xff1a; 天选姬 下载地址&#xff1a;https://www.asus.com.cn/supportonly/FA506QR/HelpDesk_download/ 选择系统&#xff0c;点击软件程序下的查看更多&#xff0c;选择天选姬桌面大鹅&#xff08;Desktop Goose&#xff09; 下载地址&#xff1a;https://wwu.…

微信小程序最新调用用户头像以及昵称

众所周知&#xff1a;微信小程序开发是面对“公告”编程&#xff0c;小程序的api更新迭代之快&#xff0c;让人叫苦不堪&#xff0c;&#xff0c;&#xff0c; 最近开发小程序项目时&#xff0c;获取用户头像和昵称的方式发生了很大的改变&#xff1a; 它居然绑定到一个 butt…

微信小程序新版头像昵称API [保存用户头像到服务器]

根据微信官方文档的说法&#xff0c;2022年10月之后&#xff0c;原本的获取昵称和头像的api&#xff0c;也就是wx.getUserProfile和wx.getUserInfo将停止支持&#xff0c;在那之后发布和更新的小程序必须停止使用这两个api。 这两个api获得的用户头像均为一个url&#xff0c;指…

相片怎么变成漫画头像?分享个好用的处理工具

①.首先我们在电脑上打开任意浏览器&#xff0c;搜索进入改图在线做图页面。进入之后&#xff0c;可以看到上方的导航栏中有“去玩特效”这个导航&#xff0c;点击这里或者首页推荐工具下方的“照片特效”进入即可。 ②.进入照片特效页面后&#xff0c;这里有很多中卡通人脸特效…

taro小程序用户头像昵称获取

微信发布《小程序用户头像昵称获取规则调整公告》之后&#xff0c;无法再使用getUserProfile获取用户头像和昵称&#xff0c;因此小程序官方提供了头像昵称填写功能来完善个人资料。 对button添加open-type"chooseAvatar" bind:chooseavatar"onChooseAvatar&qu…

聊天截图厚码也不安全,大神写了算法分分钟给你还原

金磊 发自 凹非寺量子位 | 公众号 QbitAI 讲个恐怖的故事。 早上跟同事在微信闲谈&#xff0c;聊起了一位女同事最近的变化。 结果他反手就把文字打上马赛克&#xff0c;截图丢进了群里&#xff1a; 还欠欠儿地补了一刀&#xff1a; XXX&#xff0c;他说你坏话了呦~ 万万没想到…

深度对话三维家 | 4万亿市场,家装设计会诞生AIGC首个杀手级赚钱应用吗?

2022年&#xff0c;ChatGPT的火爆登场&#xff0c;超级烧钱的AI大模型赛道随即进入“千模大战”&#xff0c;“战况”惨烈异常。 时间来到2023年年中&#xff0c;AIGC热度不减&#xff0c;虽然创业者还在汹涌入局。究竟如何使用AIGC技术&#xff1f;AIGC技术可以在哪些场景率先…

2022年AIGC简单展望

2022 对于社会是不平凡的一年&#xff0c;而对于科技也同样是不平凡的一年。人们在社会中遭受着失意&#xff0c;却在科技中寻找希冀。对于一个命运共同体&#xff0c;它想着如何破除衰退&#xff0c;而同样对于一个活生生的个体或者家庭&#xff0c;他们也在摸索改变命运的机遇…

资本观望,大厂入局,海外大模型血脉压制……国内AIGC创业者的机会在哪里?...

图片来源&#xff1a;由无界 AI生成 A股AI概念股直线式拉涨&#xff0c;技术大牛带资进组分分钟成数十亿人民币独角兽&#xff0c;互联网巨头争抢着入局&#xff0c;政府各类扶持政策持续出台&#xff0c;媒体动不动就是万亿风口&#xff0c;500万年薪难招AIGC大牛……2022年以…

孔乙己新编

原创&#xff1a;刘教链 * * * 好币App的UI&#xff0c;是和别个儿不同的&#xff1a;开屏画面过后&#xff0c;扑面而来的是浓浓的山寨风&#xff0c;可以随时梭上一把。黄袍加身的人&#xff0c;傍午傍晚送完外卖&#xff0c;每每换上十几个u&#xff08;注&#xff1a;指USD…

裁员一万转身拥抱AI,Meta又要改名了

作者 | Eric 编辑 | Zuri‍‍‍‍‍‍ 首图来源&#xff1a;The New York TImes 美国科技四巨头中&#xff0c;如今就属Meta最显落寞了。 前不久&#xff0c;苹果CEO库克到访中国&#xff0c;不管是跟普通顾客在三里屯打成一片&#xff0c;还是跟科技部长会面&#xff0c;都受到…

巴比特 | 元宇宙每日必读:训练速度提升15倍,微软开源Deep Speed Chat,用户可通过“傻瓜式操作”训练大语言模型...

摘要&#xff1a;4月12日&#xff0c;微软宣布开源了Deep Speed Chat&#xff0c;用户可通过Deep Speed Chat提供的“傻瓜式”操作&#xff0c;以最短的时间、最高效的成本训练类ChatGPT大语言模型&#xff0c;这标志着一个人手一个ChatGPT的时代要来了。据悉&#xff0c;Deep …

AI大火:让卖课的先富起来

作者&#xff5c;路世明编辑&#xff5c;大 风 ChatGPT的爆火&#xff0c;再次掀起了全球人工智能产业的热潮。 自年初以来&#xff0c;国内外科技巨头相继开发并发布了一大批类GPT产品。海外方面&#xff0c;谷歌有Bard&#xff0c;Meta有LLaMA&#xff0c;亚马逊有Amazon B…

Feed43自定义 RSS 订阅源

Google Reader 的关闭后&#xff0c;到处充斥着 RSS 将死的论调。如今看来并没有想象中的那么惨&#xff0c;许多人依旧喜欢沿用 RSS 作为自己获取信息的方式。 前段时间&#xff0c;少数派 Matrix 进行了一次关于 RSS 的讨论&#xff0c;其中不乏有许多好的观点迸发出来。如果…