《动态模糊图像复原MATLAB程序》由会员分享,可在线阅读,更多相关《动态模糊图像复原MATLAB程序(7页珍藏版)》请在人人文库网上搜索。

1、1、 退化程序clc;clear all;close all;I=imread(F:mmwB1图2.jpg);%读图figure;subplot(4,3,1);imshow(I);title(原图像);LEN=30;%运动长度30THETA=30;%运动角度30% LEN=60;% THETA=60;n=2;for i=1:3for j=1:3PSF=fspecial(motion,LEN*i,THETA*j);%退化并研究运动角度和长度对图片模糊程度的影响PSF=fspecial(motion,LEN,THETA);Blurred=imfilter(I,PSF,circular,conv);。

2、subplot(4,3,n);imshow(uint8(Blurred);title(模糊化);hold onn=n+1;endend%imwrite(Blurred,模糊60长60.png);%保存图2、 运动角度的求解%求解模糊运动角度matlab代码close all;clc;clear all;im=imread(F:mmwB1模糊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;fi。

3、gure;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(。

4、频谱列和曲线图1)%绘制频谱列和曲线图3、 运动长度算法%求解模糊运动长度matlab代码:im=imread(F:mmwB1模糊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 allim=imread(F:mmwB1图1.。

5、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:190for j=1:162for k=1:3f11(i,j,k)=im(i,j,k);endendendfor i=1:130for j=501:630fork=1:3;f22(i,j-500,k)=im(i,j,k);endendfor i=721:870for j=11:170for k=1:3f33(i-720,j-10,k)=im(i,j,k);endendendfor i=。

6、761:830for j=561:630for k=1:3f33(i-760,j-560,k)=im(i,j,k);endendendfigure;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:mmwB1图1.png);%读图Len=60;Theta=60;PSF=fspecial(motion,Len,Theta);。

7、 %模糊化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(Blu。

8、rred_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);tit。

9、le(最小二乘法);imwrite(J,min_recover1.png);subplot(224);imshow(Luc);title(L_R法);imwrite(Luc,LR_recover1.png);6、 截取部分图片进行对比程序clear all;clc;a=imread(F:mmwB1模糊60长60.png); %未处理质量较差图像b=a(64:120,67:126);a=imread(F:mmwmin_recover1.png);%算法处理后质量较好图象c=a(64:120,67:126);%从eyechart3中截取测试参考图象,截取部分需要进行缩放-%使之与eyechart1。

10、,eyechart2截取部分大小匹配-a=imread(F:mmwB1图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截取部分)。

11、;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:2imsrcnamehead=area_模糊60长60; %源图象文件名头imsrcnameext=png; %源图象文件名扩展if m=1 %以area_eyechart1.bmp为测试。

12、图象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,imsrcn。

13、ameext); %污染图象读取doubleimsrc=double(imsrc); %转换为浮点类型doubleimdst=double(imdst); %转换为浮点类型%-源图象和污染图象读取W=iminfo.Width; %图象宽H=iminfo.Height; %图象高%-PSNR计算-if PSNRenable=1PSNR=0.0; %PSNR赋初值for j=1:Hfor i=1:WPSNR=PSNR+double(doubleimsrc(j,i)-doubleimdst(j,i)*(doubleimsrc(j,i)-doubleimdst(j,i);endendPSNR=PSNR。

14、/W/H;PSNR=10*log10(255*255/PSNR);%-PSNR计算完毕-end%-模糊系数KBlur计算-if KBlurenable=1Sin=0.0; %Sin赋初值Sout=0.0;for j=2:H-1for i=2:W-1t=doubleimsrc(j-1,i+1)+doubleimsrc(j+1,i-1)-doubleimsrc(j-1,i-1)-doubleimsrc(j+1,i+1);if t0t=-t;endSin=Sin+t; %源图象邻域边缘能量计算t=doubleimdst(j-1,i+1)+doubleimdst(j+1,i-1)-doubleimds。

15、t(j-1,i-1)-doubleimdst(j+1,i+1);if t0t=-t;endendendSout=Sout+t; %污染图象邻域边缘能量计算KBlur=Sout/Sin;end%-KBlur计算完毕-%-质量指数Q计算-if Qenable=1Q=0.0; %Q赋初值Qnum=0; %图象以7X7块大小计算每块的Q,逐象素的移动块窗口,这里Qnum为块数量的计数for j=4:H-3for i=4:W-3midsrc=0.0;middst=0.0;varsrc=0.0;vardst=0.0; %源图象和污染图象块内的平均值和方差赋初值varsrcdst=0.0;%源图象和污染图象。

16、块内的协方差赋初值for n=-3:3for m=-3:3midsrc=midsrc+doubleimsrc(j+n,i+m);middst=middst+doubleimdst(j+n,i+m);endendmidsrc=midsrc/49;middst=middst/49;%源图象和污染图象块内的平均值计算-for n=-3:3for m=-3:3varsrc=varsrc+(doubleimsrc(j+n,i+m)-midsrc)*(doubleimsrc(j+n,i+m)-midsrc);vardst=vardst+(doubleimdst(j+n,i+m)-middst)*(doub。

17、leimdst(j+n,i+m)-middst);varsrcdst=varsrcdst+(doubleimsrc(j+n,i+m)-midsrc)*(doubleimdst(j+n,i+m)-middst);endendvarsrc=varsrc/48;vardst=vardst/48;varsrcdst=varsrcdst/48;if(varsrc+vardst)*(midsrc*midsrc+middst*middst)=0%分母不为零的块才计算质量指数QQ=Q+4*varsrcdst*midsrc*middst/(varsrc+vardst)*(midsrc*midsrc+middst*middst);%源图象和污染图象块内Q计算完毕-Qnum=Qnum+1; %块计数加1endendendQ=Q/Qnum;endendQPSNRKBlur。

求解模糊运动角度matlab,动态模糊图像复原MATLAB程序相关推荐

  1. matlab 动态优化,基于Matlab的测控系统动态性能优化与仿真

    随着测试技术的发展,人们采用传感器测控系统的动态性能指标来表征系统性能.描述传感器的主要动态性能指标是工作频带,系统的动态性能研究的重要一步是在辨识出合适的模型结构和模型参数的基础上,根据现有的工作频 ...

  2. matlab 动态存储图片,Matlab刷新图像及保存.gif动图的简单方法

    ​​ 有很多时候我们需要在PPT中展示一个动态变化的图像,这就需要不断刷新绘图以及保存独立的动画或者视频,matlab对于这一功能有非常完善的支持. 查文档就有还非要写报告,我摸鱼的时间也很宝贵的好么 ...

  3. matlab 动态识别,基于matlab脸部动态特征的人脸表情识别程序

    [实例简介] 通过训练jaffe数据库,实现识别人脸高兴.惊讶.恐惧.生气等六种表情,并圈出.可调用电脑摄像头实时监测.内附有使用说明,可以使用.仅供学习参考. [实例截图] [核心代码] fdf56 ...

  4. 【光线追踪系列九】物体动态模糊

    本文主要参照 Ray Tracing: The Next Week,其中只是主要精炼光追相关理论,具体实现可参照原文. 一.动态模糊 如果要实动态模糊的效果,可以将原来的球体,改成球心在某条线段上的球 ...

  5. 像素级动态模糊(Pixel Motion Blur)

    像素级动态模糊(Pixel Motion Blur) 动态模糊近几年广泛应用于游戏制作的一种特效,可以使得游戏所呈现出的运动画面更接近于真实相机所拍摄出的效果.      在真实世界中,运动模糊是指在 ...

  6. Ae动态模糊插件ReelSmart Motion Blur

    REVisionFX ReelSmart Motion Blur for Mac是一款运行在After Effects上的运动模糊插件,这款RSMB动态模糊插件支持自动跟踪动画运动的像素,然后添加自然 ...

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

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

  8. 动态模糊或运动模糊(motion blur) 介绍

    // 动态模糊或运动模糊(motion blur)是静态场景或一系列的图片像电影或是动画中快速移动的物体造成明显的模糊拖动痕迹. 摄影技术 当相机拍出影像时,不单只表现出单一时间的即时影像.由于技术限 ...

  9. 【shadertoy】线性动态模糊的实现 Analytical Motion Blur

    动机 在shadertoy看到这个动态模糊的代码Analytical Motionblur 2D.不只是他的动态模糊,他整体的颜色.背景.小球的运动等都感觉很棒.代码也不长,因此仔细研究了下. 具体效 ...

最新文章

  1. android安卓动态设置控件宽高
  2. 134个预训练模型、精度高达85.1%,百度视觉算法最强基石PaddleClas全新升级
  3. 如何去除使用inline-block之后的间距(二)?
  4. mysql查询每个机构下的账号总数_MySQL高可用方案:实践篇
  5. fraction在java_Fraction.java
  6. SQL实现当前行等于前面两行数据之和
  7. 十年探索,云上明灯,re:Invent再启掀产业风暴
  8. 多个html网页共享变量,多个jsp页面共享一个js对象的超级方法
  9. jQuery倒计时(仿团购)
  10. 华为旗下哈勃投资公司入股光刻机制造商科益虹源
  11. Node文件服务器(文件上传)
  12. 吴恩达神经网络和深度学习-学习笔记-31-池化层
  13. iOS平台一套完善的Crash Report解决方案
  14. INFORMATION_SESSION_VARIABLES feature is disabled问题
  15. 【第40题】2019年OCP认证12C题库062考试最新考试原题
  16. 【SVN】解决SVN安装语言包后无法选择中文的问题
  17. 雷达信号处理基础 多普勒频移
  18. 服务器Raid5磁盘阵列数据恢复步骤和数据恢复方法
  19. 如何量化考核软件开发人员绩效
  20. [LeetCode]Burst Balloons 爆气球

热门文章

  1. 面试官:如何评估一个线程池需要设置多少个线程
  2. 130 行代码模仿火爆抖音的“蚂蚁呀嘿”特效,你学会了吗?
  3. 官宣!CSDN 发布 C 站软件工程师能力认证
  4. 是!“不会数据分析的,全是假程序员”!HR:太真实……
  5. 《2020数字中国指数报告》重磅发布,“上云”成产业数字化必选项
  6. 厉害了!他是 Facebook 开国元老,30 分钟解决 Instagram 服务器挂机难题
  7. 中国最优秀的程序员都有哪些?王兴、张小龙、张一鸣是哪类?| 蒋涛说
  8. 面试官:你说对 MySQL 事务很熟?那我问你 10 个问题
  9. ​​​​​​​微信、Facebook牵手合作,抗击全球新冠肺炎疫情
  10. 支撑千万规模类别分类技术,百度飞桨定义工业级深度学习框架