基于MATLAB的运动模糊图像处理
基于MATLAB的运动模糊图像处理
研究目的
在交通系统、刑事取证中图像的关键信息至关重要,但是在交通、公安、银行、医学、工业监视、军事侦察和日常生活中常常由于摄像设备的光学系统的失真、调焦不准或相对运动等造成图像的模糊,使得信息的提取变得困难。但是相对于散焦模糊,运动模糊图像的复原在日常生活中更为普遍,比如高速运动的违规车辆的车牌辨识,快速运动的人群中识别出嫌疑人、公安刑事影像资料中提取证明或进行技术鉴定等等,这些日常生活中的重要应用都需要通过运动模糊图像复原技术来尽可能地去除失真,恢复图像的原来面目。因此对于运动模糊图像的复原技术研究更具有重要的现实意义。
图像复原原理
本文探讨了在无噪声的情况下任意方向的匀速直线运动模糊图像的复原问题,并在此基础上讨论了复原过程中对点扩散函数(PSF)的参数估计从而依据自动鉴别出的模糊方向和长度构造出最为近似的点扩散函数,构造相应的复原模型,实现运动模糊图像的复原;在模糊图像自动复原的基础上,根据恢复效果图的纹理特征和自动鉴别出的模糊长度和角度,人工调整模糊方向和长度参数,使得复原效果达到最佳。
实验过程
1(a) 1(b)
j=imread('车牌1.jpg');
figure(1),imshow(j);
title('原图像');
len=20; theta=30;
psf=fspecial('motion',len,theta);
j1=imfilter(j,psf,'circular','conv');
figure,imshow(j1);
title('PSF模糊图像');
图1(c)和1(d)分别为原图像和模糊图像的二次傅里叶变化
1(c) 1(d)
J=rgb2gray(j);
K=fft2(J);%傅里叶变换
M=fftshift(K);%直流分量移到频谱中心
N=abs(M);%计算频谱幅值
P=(N-min(min(N)))…
/(max(max(N))-min(min(N)))*225;%归一化
figure,imshow(P);
title('傅里叶变换频谱');
J1=rgb2gray(j1);
K1=fft2(J1);%傅里叶变换
M1=fftshift(K1);%直流分量移到频谱中心
N1=abs(M1);%计算频谱幅值
P1=(N1-min(min(N1)))/(max(max(N1))…
-min(min(N1)))*225;%归一化
figure,imshow(P1);
title('傅里叶变换频谱');
利用图1(d)粗略的计算模糊的方向,可以通过matlab自带的画线工具,选取如下图1(e)所示的三角形,计算a与c之间的夹角
Matlab命令窗口输:ginput
选中三个顶角后回车,可得数据
ans =
136.6009 146.3977
137.4205 166.8895
145.2074 166.8895
粗略取值后,经Matlab计算得:
atan(20/9)*180/pi
ans = 65.7723 则运动方向为90-ans≈25(误差为5)。
1(e)
模糊长度的估计
运动模糊图像中,在运动方向上大多数模糊图像的背景像素点具有很强的相关性,即沿着运动模糊的轨迹,背景像素点的灰度值逐渐变化或者不变。通过文献的学习,先对模糊图像进行一阶微分,然后进行自相关运算,可得一条鉴别曲线,曲线上会出现对称的相关峰,峰值为负,两相关峰之间的距离等于运动模糊长度。
把模糊图像转换为灰度图像,采用Sobel算子对其进行一阶微分运算,Sobel算子
其自相关曲线如图2(a)所示。利用matlab的Data Cursor可以测得两负峰之间的距离为20个像素点,此为运动模糊的长度,与理论值吻合(比较精确)。由于长度的测量计较精确,可以根据长度对运动模糊方向进行不同的取值,达到最好效果。
f1=rgb2gray(j1);
f1=im2double(f1);
h = fspecial('Sobel'); %Sobel算子
J = conv2(f1,h,'same'); %Sobel算子微分
IP=abs(fft2(J));
%图像能量谱密度
S=fftshift(real(ifft2(IP)));
figure,plot(S);
title('自相关图');
%图像自相关函数
图像的复原
然后我们按本文中鉴别出的运动模糊图像的运动长度和运动角度后,构造出相应的匀速直线运动PSF,并对其进行图像复原,得到的效果如下图3所示。
len=20;
theta=25;
psf=fspecial('motion',len,theta);
wnr1=deconvwnr(j1,psf,0);
subplot(221),imshow(wnr1);
title('维纳滤波处理后图像');
np=0.002*prod(size(j));
er=deconvreg(j1,psf,np/3.0);
subplot(222),imshow(er);
title('最小二乘方复原')
lucy=deconvlucy(j1,psf);
subplot(223),imshow(lucy);
title(' Lucy richardson图像复原');
NITPSF=ones(size(psf));
[mang,psf]=deconvblind(j1,INITPSF,40);
subplot(224),imshow(mang);
title('盲去卷积复原');
由上图可知经过Lucy richardson复原的图像效果最好,可多次修改运动模糊方向,再进行Lucy richardson复原。下图4为运动模糊方向为30的效果。
图像中可以比较清楚的看出此图中汽车的牌子‘本田’以及车牌‘闽C 6R972’。
基于MATLAB的运动模糊图像处理相关推荐
- 基于matlab的运动模糊图像处理,基于matlab运动模糊图像处理
基于matlab运动模糊图像处理 基于 MATLAB 的运动模糊图像处 理 提醒: 我参考了文献里的书目和网上的一些代码而完成的,所以误差会比较大,目前 对于从网上下载的模糊图片的处理效果很不好, 这 ...
- 基于MATLAB 的运动模糊图像复原
基于MATLAB 的运动模糊图像复原 研究目的 在交通系统. 刑事取证中图像的关键信息至关重要, 但是在交通. 公安.银行. 医学.工业监视.军事侦察和日常生活中常常由于摄像设备的光学系统的失真. 调 ...
- 【图像处理】基于MATLAB FCM(模糊聚类)的侧扫声呐图像分割
目录 基于MATLAB FCM(模糊聚类)的侧扫声呐图像分割 基于MATLAB FCM(模糊聚类)的侧扫声呐图像分割 基于MATLAB FCM(模糊聚类)的侧扫声呐图像分割通常可以分为以下步骤: 读取 ...
- 基于MATLAB的运动模糊图像恢复技术
基于MATLAB的运动模糊图像恢复技术 摘要:MATLAB是当今流行的科学计算软件,它具有很强的数据处理能力.在其图像处理工具箱中有四个图像复原函数,本文就这些函数的算法原理.运用和恢复处理效果结合实 ...
- 基于MATLAB的离焦模糊图像复原
基于MATLAB的离焦模糊图像复原 摘 要 图像在获取.传输和存储过程中会受到如模糊.失真.噪声等原因的影响,这些原因会使图像的质量下降.因此,我们需要采取一定的方法尽可能地减少或消除图像质量的下降, ...
- 【老生谈算法】基于matlab的运动目标识别与跟踪系统设计与算法原理及程序源码——目标识别算法
基于matlab的运动目标识别与跟踪系统设计与算法原理 大家好,今天给大家介绍基于matlab的运动目标的监测与跟踪系统设计与原理. 视频图像分析主要是对运动图像序列进行分析处理,它通常涉及到运动检测 ...
- 基于matlab 的燃油喷雾图像处理方法,基于MATLAB的燃油喷雾图像处理方法.doc
基于MATLAB的燃油喷雾图像处理方法 基于MATLAB的燃油喷雾图像处理方法 摘要:提出了基于MATLAB的燃油喷雾图像处理方法.通过对喷雾图像的采集, 分割和滤波处理, 将多幅图像转换融合为一幅 ...
- 【图像处理】基于matlab GUI多功能图像处理系统【含Matlab源码 1876期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像处理]基于matlab GUI多功能图像处理系统[含Matlab源码 1876期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- 基于matlab的gui设计与实现,毕业设计基于MATLAB GUI的数字图像处理的设计与实现(V2.1)...
<[毕业设计]基于MATLAB GUI的数字图像处理的设计与实现.doc>由会员分享,可在线阅读全文,更多相关<毕业设计基于MATLAB GUI的数字图像处理的设计与实现(V2.1) ...
最新文章
- 后深度学习时代的一大研究热点?论因果关系及其构建思路
- Oracle伪列ROWID和ROWNUM
- J钓鱼 (vector + queue)
- dealloc时取weakself引起崩溃
- Java 9:JShell
- 【干货合集】看完这些干货,再说你因为“怕蛇”,所以学不好Python!
- 企业打开Redis的正确方式,来自阿里云云数据库团队的解读
- 修改yum的镜像服务器为阿里云
- 最小二乘支持向量机LSSVM
- 计算机msvcp100.dll,msvcp100.dll丢失的解决方法
- 实现在线预览 pdf 以及添加水印
- python绘制8×8棋盘_python绘制跳棋棋盘
- 彻底搞懂python函数2
- ubuntu 16.10 install 搜狗输入法
- kubernetes增加删除master节点操作
- 【转】从一个App跳转到另一APP
- dcs常用的冗余方式_dcs试题
- Marvolo Gaunt's Ring ---CodeForces - 855B(思维题)
- C语言学习之假如我国国民生产总值的年增长率为7%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为p=(1+r)ⁿ r为年增长率,n为年数,p为与现在相比的倍数。
- 第19天---python办公自动化---操作PDF文件