基于MATLAB 的运动模糊图像复原
基于MATLAB 的运动模糊图像复原
研究目的
在交通系统、 刑事取证中图像的关键信息至关重要, 但是在交通、 公安、银行、
医学、工业监视、军事侦察和日常生活中常常由于摄像设备的光学系统的失真、
调焦不准或相对运动等造成图像的模糊, 使得信息的提取变得困难。 但是相对
于散焦模糊, 运动模糊图像的复原在日常生活中更为普遍, 比如高速运动的违
规车辆的车牌辨识, 快速运动的人群中识别出嫌疑人、 公安刑事影像资料中提
取证明或进行技术鉴定等等, 这些日常生活中的重要应用都需要通过运动模糊
图像复原技术来尽可能地去除失真, 恢复图像的原来面目。 因此对于运动模糊
图像的复原技术研究更具有重要的现实意义。
图像复原原理
本文探讨了在无噪声的情况下任意方向的匀速直线运动模糊图像的复原问题,
并在此基础上讨论了复原过程中对点扩散函数 (PSF)的参数估计从而依据自动鉴别出的模糊方向和长度构造出最为近似的点扩散函数,构造相应的复原模
型,实现运动模糊图像的复原; 在模糊图像自动复原的基础上, 根据恢复效果图的纹理特征和自动鉴别出的模糊长度和角度,人工调整模糊方向和长度参
数,使得复原效果达到最佳。
实验过程
模糊方向的估计:
对图 1(a)所示的原始图像‘车牌’图像做方向 = 30 ,长度 L=20
像素的匀速直线运动模糊,得到退化图像如图 1(b)
1(a)
1(b)
j=imread('
车牌
1.jpg');
len=20; theta=30;
figure(1),imshow(j);
psf=fspecial('motion',len,theta);
title(' 原图像
');
j1=imfilter(j,psf,'circular','conv');
figure,imshow(j1);
title('PSF
模糊图像
');
图 1(c)和 1(d)分别为原图像和模糊图像的二次傅里叶变化
1(c) 1(d)
J=rgb2gray(j); J1=rgb2gray(j1);
K=fft2(J);% 傅里叶变换 K1=fft2(J1);% 傅里叶变换
M=fftshift(K);% 直流分量移到频谱中心M1=fftshift(K1);% 直流分量移到频谱中心
N=abs(M);%
计算频谱幅值
N1=abs(M1);%
计算频谱幅值
P=(N-min(min(N)))
⋯
P1=(N1-min(min(N1)))/(max(max(N1))
⋯
/(max(max(N))-min(min(N)))*225;%
-归min(min(N1)))*225;%一化
归一化
figure,imshow(P);
figure,imshow(P1);
title(' 傅里叶变换频谱
');
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 算子
1 0 1
So b e l = 2 0 | 2 |
1 0 1
其自相关曲线如图 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;
np=0.002*prod(size(j));
psf=fspecial('motion',len,theta);
er=deconvreg(j1,psf,np/3.0);
wnr1=deconvwnr(j1,psf,0);
subplot(222),imshow(er);
subplot(221),imshow(wnr1);
title(' 最小二乘方复原
')
title(' 维纳滤波处理后图像
');
NITPSF=ones(size(psf));
subplot(223),imshow(lucy); [mang,psf]=deconvblind(j1,INITPSF,40);
title(' Lucy richardson 图像复原 '); subplot(224),imshow(mang);
title(' 盲去卷积复原 ');
由上图可知经过 Lucy richardson 复原的图像效果最好,可多次修改运动模糊方向,再进行 Lucy richardson 复原。下图 4 为运动模糊方向为 30 的效果。
图像中可以比较清楚的看出此图中汽车的牌
子‘本田’以及车牌‘闽 C 6R972’。
参考文献:1.红外技术 第 32 卷 第 5 期 2010
- 5 月 《毫米波辐射图像的运动模糊参数辨识》 胡泰洋、肖泽龙、许建中
2.《数字图像处理及 MATLAB 实现——学习与实验指导》
基于MATLAB 的运动模糊图像复原相关推荐
- 基于MATLAB的运动模糊图像处理
基于MATLAB的运动模糊图像处理 研究目的 在交通系统.刑事取证中图像的关键信息至关重要,但是在交通.公安.银行.医学.工业监视.军事侦察和日常生活中常常由于摄像设备的光学系统的失真.调焦不准或相对 ...
- 基于MATLAB的离焦模糊图像复原
基于MATLAB的离焦模糊图像复原 摘 要 图像在获取.传输和存储过程中会受到如模糊.失真.噪声等原因的影响,这些原因会使图像的质量下降.因此,我们需要采取一定的方法尽可能地减少或消除图像质量的下降, ...
- 基于matlab的运动模糊图像处理,基于matlab运动模糊图像处理
基于matlab运动模糊图像处理 基于 MATLAB 的运动模糊图像处 理 提醒: 我参考了文献里的书目和网上的一些代码而完成的,所以误差会比较大,目前 对于从网上下载的模糊图片的处理效果很不好, 这 ...
- matlab修复模糊图片论文,图像算法论文,关于运动模糊图像复原算法相关参考文献资料-免费论文范文...
导读:本论文可用于图像算法论文范文参考下载,图像算法相关论文写作参考研究. 周志强 程 姝 季 静 (安徽省标准化研究院,安徽 合肥 230051) [摘 要]运动模糊图像的产生是由于拍摄瞬间摄影镜头 ...
- 运动模糊图像复原算法实现及应用
MATLAB图像复原系统 概述 1.1选题背景 从历史上来看,数字图像处理研究有很大部分是在图像恢复方面进行的,包括对算法的研究和针对特定问题的图像处理程序的编写.数字图像处理中很多值得注意的成就就是 ...
- 基于MATLAB的运动模糊图像恢复技术
基于MATLAB的运动模糊图像恢复技术 摘要:MATLAB是当今流行的科学计算软件,它具有很强的数据处理能力.在其图像处理工具箱中有四个图像复原函数,本文就这些函数的算法原理.运用和恢复处理效果结合实 ...
- 【图像处理】基于MATLAB FCM(模糊聚类)的侧扫声呐图像分割
目录 基于MATLAB FCM(模糊聚类)的侧扫声呐图像分割 基于MATLAB FCM(模糊聚类)的侧扫声呐图像分割 基于MATLAB FCM(模糊聚类)的侧扫声呐图像分割通常可以分为以下步骤: 读取 ...
- 【点击百度快照】基于MATLAB的运动车辆跟踪检测系统(GUI,视频读取)
一.课题介绍* 本设计为基于MATLAB的运动车辆跟踪检测系统.带有一个GUI界面,可以读取高速路车流视频,读取视频信息,并且统计每辆车经过左车道还是右车道,车速和平均速度检测,以及某一帧下的车流密度 ...
- 【老生谈算法】基于matlab的运动目标识别与跟踪系统设计与算法原理及程序源码——目标识别算法
基于matlab的运动目标识别与跟踪系统设计与算法原理 大家好,今天给大家介绍基于matlab的运动目标的监测与跟踪系统设计与原理. 视频图像分析主要是对运动图像序列进行分析处理,它通常涉及到运动检测 ...
最新文章
- Android 获取SDCard中某个目录下图片
- ASP.NET Web API 特性
- 【渝粤题库】广东开放大学 文化活动策划与组织 形成性考核
- MyEclipse2014破解
- ASP.NET MVC Preview 2新特性
- UI设计素材干货模板|手机app夜间模式相关素材
- Oracle树查询(查询所有子节点,父节点等等)_转载
- centos安装stress安装失败_Linux压力测试工具Stress的使用指南
- 2014-12-02-2107-Java-UML
- TCP/IP协议分层模型以及数据的封装和分用
- 智渔课堂官方免费教程二十六:Java基础教程之数组
- TouchSlop与VelocityTracker认识
- 单相/三相桥相/线电压基波幅值总结
- [基本功]分类模型评价标准
- 有向加权图 最大弱连通分支_指数基金介绍专栏:指数基金的加权方式,你都知道哪些?...
- panda经典四道题期末考核分享
- zTree单击展开节点
- 268. Missing Number(缺失数字)
- 若A、B都是n阶正交阵,那么,A X B是正交阵吗?
- 云计算介绍 tcp/ip协议介绍及配置
热门文章
- google网盘 百度网盘文件互传
- [python] python模块graphviz使用入门
- Hash表的初步认识
- window.print()+layer.open()——实现打印A4纸张内容的功能——功能实现
- mysql数据库的安装和使用方法_Mysql数据库的安装和使用
- java在微信朋友圈中植入广告_微信朋友圈广告植入怎么做
- 数据结构 笔记--向量 C++ 语言版 邓俊辉老师
- SAP LSMW 快照批量处理总账科目数据
- tp6后台管理系统搭建
- PHP + QQ邮箱发送邮箱验证码