动态模糊图像复原MATLAB程序
MatLab代码大全

图像获取2.3.2 二维连续傅里叶变换例2.2figure(1); %建立图形窗口1[u,v] = meshgrid(-1:0.01:1); %生成二维频域网格F1 = abs(sinc(u.*pi));F2 = abs(sinc(v.*pi));F=F1.*F2; %计算幅度频谱F=|F(u,v)|surf(u,v,F); %显示幅度频谱,如图2.3(b)shading interp; %平滑三维曲面上的小格axis off; %关闭坐标系figure(2); %建立图形窗口2F1=histeq(F); %扩展F的对比度以增强视觉效果imshow(F1); %用图像来显示幅度频谱,如图2.3(c)图像变换3.4.4 二维FFT的MATLAB实现例3.2 简单图像及其傅里叶变换MA TLAB程序:%建立简单图像d并显示之d = zeros(32,32); %图像大小32⨯32d(13:20,13:20) = 1; %中心白色方块大小为8⨯8figure(1); %建立图形窗口1imshow(d,'notruesize');%显示图像d如图3.5(a)所示%计算傅里叶变换并显示之D = fft2(d); %计算图像d的傅里叶变换,fft2(d) = fft(fft(d).').'figure(2); %建立图形窗口2imshow(abs(D),[-1 5],'notruesize'); %显示图像d的傅里叶变换谱如3.5(b)所示例3.3 MA TLAB图像及其傅里叶变换谱MA TLAB程序:figure(1);load imdemos saturn2; %装入MA TLAB图像saturn2imshow(saturn2); %显示图像saturn2如图3.6(a)所示figure(2);S= fftshift(fft2(saturn2)); %计算傅里叶变换并移位imshow(log(abs(S)),[ ]); %显示傅里叶变换谱如3.6(b)所示例3.4 真彩图像及其傅里叶变换谱MA TLAB程序:figure(1);A=imread('image1.jpg'); %装入真彩图像,见图1.1(b)B=rgb2gray(A); %将真彩图像转换为灰度图像imshow(B); %显示灰度图像如图3.7(a)所示C=fftshift(fft2(B)); %计算傅里叶变换并移位figure(2);imshow(log(abs(C)),[ ]); %显示傅里叶变换谱如3.7(b)所示3.5.4 离散余弦变换的MATLAB 实现例3.5 计算并显示真彩图像余弦变换的MA TLAB 程序如下:RGB=imread('image2.jpg'); %装入真彩图像figure(1);imshow(RGB); %显示彩色图像GRAY=rgb2gray(RGB); %将真彩图像转换为灰度图像figure(2);imshow(GRA Y); %显示灰度图像如图3.10(a)所示DCT=dct2(GRA Y); %进行余弦变换figure(3);imshow(log(abs(DCT)),[ ]); %显示余弦变换如图3.10(b)所示。
matlab数字图像处理实验报告

《数字图像处理实验报告》实验一图像的增强一.实验目的1.熟悉图像在MATLAB下的读写、输出;2.熟悉直方图;3.熟悉图像的线性指数等;4.熟悉图像的算术运算和几何变换。
二.实验仪器计算机、MATLAB软件三.实验原理图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。
从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像。
其基本原理是:对一幅图像的灰度直方图,经过一定的变换之后,使其成为均匀或基本均匀的,即使得分布在每一个灰度等级上的像素个数.f=H等或基本相等。
此方法是典刑的图像空间域技术处理,但是由于灰度直方图只是近似的概率密度函数,因此,当用离散的灰度等级做变换时,很难得到完全平坦均匀的结果。
频率域增强技术频率域增强是首先将图像从空间与变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。
常用的变换方法有傅里叶变换、DCT变换、沃尔什-哈达玛变换、小波变换等。
假定原图像为f(x,y),经傅立叶变换为F(u,v)。
频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像。
四.实验内容及步骤1.图像在MATLAB下的读写、输出;实验过程:>> I = imread('F:\image\');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 1962.给定函数的累积直方图。
维纳滤波matlab代码

维纳滤波matlab代码维纳滤波是一种经典的图像复原方法,它可以在图像受到模糊和噪声影响时进行恢复。
在Matlab中,你可以使用以下代码来实现维纳滤波:matlab.% 读取原始图像。
originalImage = imread('input_image.jpg');% 转换为灰度图像。
originalImage = rgb2gray(originalImage);% 显示原始图像。
subplot(1, 2, 1);imshow(originalImage);title('Original Image');% 添加高斯噪声。
noisyImage = imnoise(originalImage, 'gaussian', 0, 0.01);% 显示带噪声的图像。
subplot(1, 2, 2);imshow(noisyImage);title('Noisy Image');% 计算模糊点扩散函数(PSF)。
PSF = fspecial('motion', 21, 11);% 使用逆滤波器和维纳滤波器进行图像复原。
estimated_nsr = 0;wnr3 = deconvwnr(noisyImage, PSF, estimated_nsr);% 显示维纳滤波后的图像。
figure, imshow(wnr3);title('Restored Image using Wiener Filter');在这段代码中,我们首先读取原始图像,然后转换为灰度图像。
接着,我们添加高斯噪声来模拟图像受到的噪声干扰。
然后我们计算模糊点扩散函数(PSF),并使用Matlab内置的`deconvwnr`函数来进行维纳滤波处理。
最后,我们显示经过维纳滤波处理后的图像。
需要注意的是,维纳滤波的参数estimated_nsr需要根据实际情况进行调整,它代表了噪声的方差估计。
离焦图像恢复实验

实验六 离焦图像恢复实验一、 实验目的1、 掌握图像恢复的物理意义2、 掌握离焦图像产生的数学模型3、 掌握图像恢复的原理和方法4、 学会应用MATLAB 程序进行图像恢复实验二、 实验原理在图形的获取、传输以及记录保存过程中,由于各种因素,如大气的湍流效应、摄像设备中光学系统的衍射、传感器特性的非线性、光学系统的像差、成像设备与物体之间的相对运动、感光胶卷的非线性及胶片颗粒噪声以及电视摄像扫描的非线性等所引起的几何失真,都难免会造成图像的畸变和失真。
图像恢复是根据指定的图像退化模型,对退化图像进行恢复,以获取未经过退化的原始图像的一项重要技术。
图像退化基本模型一般可以表示为:),(),(),(),(y x n y x h y x f y x g +*=其中f(x,y) 为原始图像,g(x,y)为实际得到的退化图像,h(x,y)为系统点扩散函数, n(x,y) 为噪声模型。
对应的频域表达式为:),(),(),(),(v u N v u H v u F v u G +=频域滤波恢复主要有两种:逆滤波恢复和维纳滤波恢复,下面给出这两种恢复的数学模型:1、逆滤波恢复),(),(),(),(),(),(v u H v u N v u F v u H v u G v u F +==∧ 在许多实际应用中,H(u,v)离开原点后衰减很快,在H(u,v)较小和接近于0时噪声具有放大作用,属于病态性质。
这意味着逆滤波恢复极大地增强了那些噪声比最差的频率成分,使得在复原图像中通常是噪声占优势,解决上述问题较好的办法是采用维纳滤波复原技术。
2、维纳滤波恢复),(),(),(),(1),(|),(||),(|22v u G v u F v u N v u H v u F v u H v u H ⎪⎪⎪⎪⎭⎫⎝⎛+=∧ 从上式可以看出,当信噪比较大时,即噪声很小,逆滤波恢复与维纳滤波恢复一致;当信噪比较小,即噪声很大时,维纳滤波器极大地抑制噪声恢复。
基于MatLab的数字图像清晰化方法

直方图的分布,使得直方图移向暗区,可以看出图像的视觉效
·62·
Computer Era No. 4 2008
基于 Web 的授课质量评价系统的研究与实践
刘利俊 1,吴达胜 2 (1. 杭州广播电视大学网络中心,浙江 杭州 310012;2. 浙江林学院信息工程学院)
g1 和 g2 分别为门限阈值(g1<g2)。当噪声较小时,它对小波
系数的增益较大;当噪声较大时,对小波系数的增益较小。该算
法达到了自适应增强的效果。在 MatLab 中使用自适应阈值增
强方法的代码如下。
[x,ma p]=imre a d‘( 中值滤波后图像.tif’); %读取原图像
x=double (x);
直方图均衡化是较好的直方图修正方法,它生成了自适应 的变换函数,它是以已知图像的直方图为基础的。然而,一旦一 幅图像的变换函数计算完毕,它将不再改动,除非直方图有变 动。直方图均衡化通过扩展输入图像的灰度级到较宽亮度尺度 的范围来实现图像的增强,但这种方法并不总能得到成功的结 果。在 MatLab 中使用如下代码实现直方图匹配增强对比度,相 应的图像与图像直方图示于图 5 及图 6。
指标体系的适应性原则。 系统运行的性能和分布与集中处理。由于整个学校学生
人数众多,同时用户可能会很多,有时也许会多达几千个,因 而系统运行的性能是非常关键的,系统应该具有分布与集中 处理功能。
系统的安全性。为了尽量避免报复现象的产生,系统的安 全保密工作应该规定不同的用户具有不同的操作权限。系统用 户可以分成四个群体:学生、教师、领导、专家。安全性问题主要 考虑以下几点:①学生群体只能对当前任课教师进行评价;② 教师群体只能看到他人(学生、同时、领导、专家)对自己的评价 结果,而看不到具体的评价者情况,以免教师对他人实行报复; 同时教师可以对同行进行评价,这些同行必须是与评价者在同 一 学 院(系)的 ,否 则 代 表 性 不 强 ;③ 领 导 群 体 只 能 对 本 学 院 (系)教师进行评价;④专家群体可以评价学校的全体教师。同 时系统还要能够对一些不负责任的学生进行监督控制,需要设 置专门的超级用户可查看学生对教师的评价细节(包括学生学 号、姓名、班级、评价分数等信息)。
图像复原——逆滤波复原与维纳滤波复原方法及比较

图像复原——逆滤波复原与维纳滤波复原⽅法及⽐较图像复原——逆滤波复原与维纳滤波复原⽅法及⽐较鲁东⼤学信息与电⽓⼯程学院学年第-----1----学期逆滤波复原与维纳滤波复原⽅法及⽐较《》课程论⽂课程号:摘要任课教师成绩图像复原,即利⽤退化过程的先验知识,去恢复已被退化图像的本来⾯⽬。
对遥论⽂题⽬:逆滤波复原与维纳滤波复原⽅法及⽐较感图像资料进⾏⼤⽓影响的校正、⼏何校正以及对由于设备原因造成的扫描线漏失、根据课程介绍的相关内容,从图像复原、分割、修复等⽅⾯,对⽬错位等的改正,将降质图像重建成接近于或完全⽆退化的原始理想图像的过程。
图像在形成,记录,处理和传输的过程中,因为成像系统,记录设备,传输介质和处理⽅前采⽤的前沿的⽅法理论及技术进⾏总结分析,题⽬⾃拟。
法的不完备导致图像质量的下降,也就是常说的图像退化。
图像复原是对发⽣退化的论⽂要求:(对论⽂题⽬、内容、⾏⽂、字数等作出判分规定。
) 图像进⾏补偿,某种意义上对图像进⾏改进,改善输⼊图像的质量。
我的这篇论⽂主要求论⽂结构合理,逻辑性强,重复率不能超过40%,内容具有⼀要介绍逆滤波图像复原,维纳滤波图像复原等⽅法,以及对他们之间进⾏⽐较。
学号_________________姓名__________________ 本专关键词:图像复原、逆滤波复原、维纳滤波复原定的前沿性。
对于全⽂抄袭、逻辑混乱等情况均判0分。
题⽬字体⿊体,⼩⼆。
正⽂,宋体,⼩四,段落间距1.2倍⾏距。
⼀(图像复原的意义字数不少于3000字。
论⽂结尾应附⾄少5篇相关参考⽂献。
复原是图像处理的⼀个重要内容,它的主要⽬的是改善给定的图像质量并尽可能教师评语: 恢复原图像。
图像在形成、传输和记录过程中,受各种因素的影响,图像的质量都会有所下降,典型表现有图像模糊、失真、有噪声等。
这⼀质量下降的过程称为图像的退化。
图像复原的⽬的就是尽可能恢复退化图像本来⾯⽬。
⼆(维纳滤波的介绍密封线学⽣须将⽂字写在此线以下图像复原是图像处理中的⼀个重要问题。
图像复原

图像复原1.背景介绍图像复原是图像处理的一个重要课题。
图像复原也称图像恢复,是图像处理的一个技术。
它主要目的是改善给定的图像质量。
当给定一幅退化了的或是受到噪声污染的图像后,利用退化现象的某种先验知识来重建或恢复原有图像是复原处理的基本过程。
可能的退化有光学系统中的衍射,传感器非线性畸变,光学系统的像差,摄影胶片的非线性,打气湍流的扰动效应,图像运动造成的模糊及集合畸变等等。
噪声干扰可以有电子成像系统传感器、信号传输过程或者是胶片颗粒性造成。
各种退化图像的复原可归结为一种过程,具体地说就是把退化模型化,并且采用相反的过程进行处理,以便恢复出原图像。
文章介绍图像退化的原因,直方图均衡化及几种常见的图像滤波复原技术,以及用MATLAB实现图像复原的方法。
2.实验工具及其介绍2.1实验工具MATLAB R2016a2.2工具介绍MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强。
MATLAB具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB 同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
3.图像复原法3.1含义图像复原也称图像恢复,是图像处理中的一大类技术。
所谓图像复原,是指去除或减在获取数字图像过程中发生的图像质量下降(退化)这些退化包括由光学系统、运动等等造成图像的模糊,以及源自电路和光度学因素的噪声。
维纳滤波复原原理维纳

维纳滤波法
运动模糊图像恢复程序
I=imread('abc.png'); figure(1);imshow(I,[]); title('原图像'); PSF=fspecial('motion',40,75); MF=imfilter(I,PSF,'circular'); noise=imnoise(zeros(size(I)),'gaussian',0,0.001); MFN=imadd(MF,im2uint8(noise)); figure(2);imshow(MFN,[]); title('运动模糊图像'); figure(3); imshow(deconvwnr(MFN,PSF),[]); title('维纳滤波复原')
(1)
对复原图象影响最小。因为图象和噪声的相关矩阵都是把图象当 作随机过程来研究,从而描述其统计特性的量,在这里最小二乘 方的最佳已经演变成均方误差最小准则下的最佳。 同样根据式(1)可求得频域维纳滤波公式如下 2 H ( u , v ) ˆ (u, v) 1 G F (u, v) H (u,v) H (u,v) 2 S n(u,v) S g (u,v)
课件名称:运动模糊图像复原 指导老师:刘红霞
设计人:张彦龙 陈廷川
运动模糊图像复原技术目的
图像复原技术也常被称为图像 恢复技术图像复原技术能够去除或 减轻在获取数字图像过程中发生的 图像质量下降(退化)问题,从而 使图像尽可能地接近于真实场景。
图像复原技术的应用
一方面,对地面上的成像系统来说,由于受到射线及 大气的影响,会造成图像的退化;另一方面,在太空 中的成像系统,由于宇宙飞船的速度远远快于相机 快门的速度,从而造成了运动模糊; 航空成像领域: 无人机、预警机、侦察机的成像侦察;巡航导弹地 形识别,侧视雷达的地形侦察等; 交通智能监控领域:电子眼(车速超过60km/小时); 公安领域: 指纹自动识别,手迹、人像、印章的鉴定识别,过 期档案文字的识别等,都与图像复原技术密不可分; 医学领域:图像复原技术也有着极其重要的作用, 如X光、CT等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、退化程序 clc; clear all; close all; I=imread('F:\mmw\B1\图2.jpg');%读图 figure; subplot(4,3,1); imshow(I); title('原图像'); LEN=30;%运动长度30 THETA=30;%运动角度30 % LEN=60; % THETA=60; n=2; for i=1:3 for j=1:3 PSF=fspecial('motion',LEN*i,THETA*j);%退化并研究运动角度和长度对图片模糊程度的影响 PSF=fspecial('motion',LEN,THETA); Blurred=imfilter(I,PSF,'circular','conv'); subplot(4,3,n); imshow(uint8(Blurred)); title('模糊化'); hold on n=n+1; end end %imwrite(Blurred,'模糊∠60长60.png');%保存图
2、运动角度的求解 %求解模糊运动角度matlab代码 close all;clc;clear all; im=imread('F:\mmw\B1\模糊∠60长60.png'); img_gray=rgb2gray(im);%灰度化 img_fft=fftshift(fft2(img_gray)); N=abs(img_fft); P=(N-min(min(N)))/(max(max(N))-min(min(N)))*225; figure; imshow(P); title('频谱图(运动角度与光斑方向垂直)'); len=35; theta=0; PSF=fspecial('motion',len,theta); B=imfilter(img_gray,PSF,'circular','conv'); subplot(121);imshow(B); %模糊图像 B1=fft2(double(B)); B2=mat2gray(log(abs(B1))); subplot(122);imshow(B2); %模糊图像的频谱图 C=sum(B2,1); %对频谱图求列和 [m,n]=size(C); x=0:1:n-1; y=C; figure,plot(x,y);title('频谱列和曲线图1') %绘制频谱列和曲线图
3、运动长度算法 %求解模糊运动长度matlab代码: im=imread('F:\mmw\B1\模糊∠60长60.png'); img_gray=rgb2gray(im);%灰度化 h=fspecial('sobel');%sobel边缘检测 img_double=double(img_gray); J=conv2(img_double,h,'same'); IP=abs(fft2(J)); S=fftshift(real(ifft2(IP))); figure;plot(S); title('模糊运动长度');
4、噪声分析 %噪声分析 clc; clear all im=imread('F:\mmw\B1\图1.png'); [m,n,h]=size(im); f11=ones(192,162,3); f22=ones(130,130,3); f33=ones(100,100,3); f44=ones(70,70,3); for i=1:190 for j=1:162 for k=1:3 f11(i,j,k)=im(i,j,k); end end end for i=1:130 for j=501:630 fork=1:3; f22(i,j-500,k)=im(i,j,k); end end for i=721:870 for j=11:170 for k=1:3 f33(i-720,j-10,k)=im(i,j,k); end end end for i=761:830 for j=561:630 for k=1:3 f33(i-760,j-560,k)=im(i,j,k); end end end figure; subplot(221),hist(f11,100); subplot(222),hist(f22,100); subplot(223),hist(f33,100); subplot(224),hist(f44,100); title('噪声分析2');
5、去噪还原 clc; clear all; close all; I=imread('F:\mmw\B1\图1.png');%读图 Len=60; Theta=60; PSF=fspecial('motion',Len,Theta); %模糊化 BlurredA=imfilter(I,PSF,'circular','conv'); wnr1=deconvwnr(BlurredA,PSF);%维纳滤波 BlurredD=imfilter(I,PSF,'circ','conv'); INITPSF=ones(size(PSF)); [K DePSF]=deconvblind(BlurredD,INITPSF,30);%盲去卷积法 BlurredB=imfilter(I,PSF,'conv'); v=0.02; Blurred_I_Noisy=imnoise(BlurredB,'gaussian',0,v); NP=v*prod(size(I)); J=deconvreg(Blurred_I_Noisy,PSF,NP);%最小二乘法 BlurredC=imfilter(I,PSF,'symmetric','conv'); v=0.002; BlurredNoisy=imnoise(BlurredC,'gaussian',0,v); Luc=deconvlucy(BlurredNoisy,PSF,5);%L_Rl滤波 subplot(221);imshow(I);title('原图'); subplot(222);imshow(BlurredA);title('模糊化'); %subplot(233);imshow(wnr1);title('维纳滤波'); subplot(223);imshow(J);title('最小二乘法');imwrite(J,'min_recover1.png'); subplot(224);imshow(Luc);title('L_R法');imwrite(Luc,'LR_recover1.png');
6、截取部分图片进行对比程序 clear all;clc; a=imread('F:\mmw\B1\模糊∠60长60.png'); %未处理质量较差图像 b=a([64:120],[67:126]); a=imread('F:\mmw\min_recover1.png'); %算法处理后质量较好图象 c=a([64:120],[67:126]); %%从eyechart3中截取测试参考图象,截取部分需要进行缩放------------------ %%使之与eyechart1,eyechart2截取部分大小匹配----------------------- a=imread('F:\mmw\B1\图2.jpg'); %高清晰参考图象 d=a([64:120],[67:126]); e=imresize(d,[length(b(:,1)),length(b(1,:))],'bicubic'); %调整 imwrite(b,'area_模糊∠60长60.png'); imwrite(c,'area_最小二乘法复原图.png'); imwrite(e,'area_图2.png'); subplot(1,3,1); imshow(e); title('模糊∠60长60截取参考'); hold on; subplot(1,3,2); imshow(b); title('eyechart1截取部分'); hold on; subplot(1,3,3); imshow(c); title('eyechart2截取部分');
7、模糊系数、质量指数、PSNR的计算(评价) clc; clear; PSNRenable=1; %PSNR计算使能,为0不计算,为1,计算 KBlurenable=1; %模糊系数KBlur计算使能,为0不计算,为1,计算 Qenable=1; %质量指数Q计算使能,为0不计算,为1,计算 for m=1:2 imsrcnamehead='area_模糊∠60长60'; %源图象文件名头 imsrcnameext='png'; %源图象文件名扩展 if m==1 %以area_eyechart1.bmp为测试图象 imdstname=strcat('area_图2','.',imsrcnameext);%污染图象文件名,可修改 elseif m==2%以area_eyechart2.bmp为测试图象 imdstname=strcat('area_最小二乘法复原图','.',imsrcnameext);%污染图象文件名,可修改 end %-------------------------------------------------------------------------- iminfo=imfinfo(strcat(imsrcnamehead,'.',imsrcnameext));%源图象信息读取
imsrc=imread(strcat(imsrcnamehead,'.',imsrcnameext)); %源图象读取 imdst=imread(imdstname,imsrcnameext); %污染图象读取 doubleimsrc=double(imsrc); %转换为浮点类型 doubleimdst=double(imdst); %转换为浮点类型 %----------------------------------------------------源图象和污染图象读取 W=iminfo.Width; %图象宽 H=iminfo.Height; %图象高 %----------------------------PSNR计算-------------------------------------- if PSNRenable==1 PSNR=0.0; %PSNR赋初值 for j=1:H for i=1:W PSNR=PSNR+double((doubleimsrc(j,i)-doubleimdst(j,i))*(doubleimsrc(j,i)-doubleimdst(j,i))); end end PSNR=PSNR/W/H; PSNR=10*log10(255*255/PSNR); %---------------------------PSNR计算完毕----------------------------------- end %-------------------------模糊系数KBlur计算-------------------------------- if KBlurenable==1 Sin=0.0; %Sin赋初值 Sout=0.0;