匀速直线运动的模糊图像的盲复原的复现
前言
很久没写博客了,学习的效率很低,还是觉得要写博客作为学习的驱动力。。。
之前看了几篇图像复原论文,做个笔记。
主要参考:
1–南昌航空大学硕士论文–运动模糊图像复原研究
2–中国科学院大学硕士论文–图像的运动模糊复原算法研究
一 名称解释
运动模糊:当图像采集设备图像场景发生相对位移,不论是采集设备运动还是背景中目标在运动,都会使采集的图像发生降质,产生图像模糊。
前者是整个图像场景发生模糊,是空间不变型,只有一个模糊核,本文主要研究该类型。后者是目标发生移动,是空间可变型,可能有多个模糊核。
空间不变型:退化函数h(x,y)与x,y无关且具有可加性
盲复原:不知道PSF(点扩散函数)情况进行图像的复原
二 图像复原理论基础
1退化模型
原图像 f 在点扩散函数h的作用下,加上加性噪声n,最后形成了退化图像g
公式表示为:g(x, y) =f(x, y) ∗h(x, y) +n(x, y)
2加性噪声模型
不同的噪声模型有不同的概率密度函数,常用的噪声模型有高斯噪声,瑞丽噪声,伽马噪声,指数噪声,均匀噪声,椒盐噪声等。只处理该噪声的方法常常就是空间滤波。均值滤波,统计排序滤波,自适应滤波等。详情见冈萨雷斯第五章。
3傅里叶变换
冈萨雷斯第四章
4图像的退化模型推导
(1)
一般退化模型:
g(x, y) =f(x, y) ∗h(x, y) +n(x, y)
由傅里叶变换的卷积定理得,空间域得卷积等于频率域的乘积:
G(u,v)=F(u,v) H(u,v)+N(u,v)
(2)
运动模糊可以认为是图像在沿着模糊方向进行了灰度的平均。
假设图像在记录的过程中物体在水平面上发生匀速直线运动,在x和Y方向上的运动分别用时间函数Xo(t)和Yo(t)表示。曝光时间为T时.
带入,进行傅里叶变换
交换积分次序可以得到
对比一般退化模型,可以得到H的公式如下
(3)
将H转为空间域可以得到直线均匀点扩散函数的定义为
由公式可知,点扩散函数只和模糊角度和模糊长度有关。所以我们只要求到这两个参数就可以得到点扩散函数从而推出原图像。
三图像质量评价
1,图像质量主观评价
2,图像质量客观评价
客观评价又分为无参考图像质量评价和有参考图像质量评价。
区别在于有参考评价需要知道原图像。
1有参考评价
均方误差MSE
复原后图像与原图像每个像素点的差值的平方。
MSE越小代表评价越好
信 噪 比 参 数SNR和 峰 值 信 噪 比 参 数PSNR
同理
基于结构相似性的图像质量评价方法
结构相似度是从三个方面:局部图像亮度、局部结构、局部图像对比度,这三个方面用于得到一个总的相似性度量
2 无参考图像质量评价参数
灰度平均梯度法GMG
求梯度,梯度越大质量越好
拉普拉斯算子
求二阶差分,一样的道理
四点扩散函数离散化
五 运动模糊方向估计
频谱图中的条纹变化具有一定的规律性,除中心条纹外其它的条纹间距相等并且以中心条纹对称分布,对于这一特征,我们对一次傅立叶变换频谱图再次进行一次傅里叶变换得到的频谱图象并对其进行二值化处理,在运动模糊方向会出现一条亮条纹,当频谱图象中条纹倾斜角发生变化时,条纹也随之变化并且方向总是保持垂直,图象该亮条纹方向就是反映了运动模糊点扩展函数 h(x, y) 的方向性
通过雷登变换求方向
雷登变换公式:
p代表与直线与原点的距离,theta代表直线的角度。
由公式可知,只有当冲击函数的参数满足直线时候,冲击函数才为1,才进行积分,否则不积分。
由图可知:
当theta等于0时候,射线为90度射下,得到的结果广而强度低。
当theta等于45度时候,射线为135度射下,得到的结果集中且强度高。
可以知道,每列最大值中的最大值所在的方向为直线的方向。
六 运动模糊长度估计
D 为频谱中极小条纹间间隔,即投影方向的 radon 变换所得数组中的极大值旁边两个极小值间间隔的 0.5 倍.M,N 为图像的尺寸
七 图像复原模型
1逆滤波
H(u,v) 的幅度会随着u ,v 平面原点距离的增加而迅速减小,而噪声 N(u,v) 一般情况下变换比较缓慢,在远离u ,v 平面的原点时 N(u,v) / H(u,v) 的值就会变得很大即噪声放大。这时候恢复只能在与原点较近(接近频域中心)的范围内进行
2 维纳滤波
八 匀速直线运动的模糊图像的盲复原的复现
I=imread('cameraman.tif');
I=im2double(I);
psf = fspecial('motion',20,45);%45度移动20像素
blurred = imfilter(I, psf, 'circular', 'conv');%创建模糊图片
imshow(blurred);F=fft2(blurred);
F=fftshift(F);
F=abs(F);
F=log(F+1);%傅里叶图像
F=mapminmax(F,0,1);
F = im2uint8(F);
F=medfilt2(F,[3,3]);
thresh = graythresh(F); %自动确定二值化阈值
B = im2bw(F,thresh); %对图像二值化
figure(),imshow(B);
theta= 0:179;
[R,xp]=radon(B,theta);
figure,imagesc(theta,xp,R);
title('R_theta X');
xlabel('theta(degree)'); ylabel('X\prime');
colormap(hot); colorbar;
col_max=max(R);%求每列最大值
[temp,re_theta]=max(col_max);%最大值和角度
[x,y]=size(R);
col_re_theta=R(:,re_theta);
figure();plot(1:1:x,col_re_theta);
[temp,total_max_x]=max(col_re_theta);
for i=total_max_x:x-1if col_re_theta(i)<col_re_theta(i+1)break;end
end
D=i-total_max_x;
[x,y]=size(I);
t=x/y;
L= x/D*sqrt(power(sin(re_theta),2)+power(t*cos(re_theta),2));
re_psf = fspecial('motion', L, re_theta);
wnr2 = deconvwnr(blurred , re_psf, 0.001);
figure, imshow(wnr2);
九 结论
匀速直线运动的模糊图像的盲复原的复现相关推荐
- 水平匀速直线运动模糊图像复原实验
近期花了点时间学习图像复原,研究了一下最基本的水平匀速直线运动图像复原方法,在此总结一下.不当之处,还请大家批评指正. 研究背景: 变速非直线运动在某些条件下可被分解为匀速直线运动,从而我们可以将变速 ...
- 用c语言编写匀速直线运动,匀速直线运动知识点总结
赶考状元小编为您带来初中物理匀速直线运动知识点总结,希望对大家有所帮助 初中物理匀速直线运动知识点总结(一) 匀速直线运动 定义:匀速直线运动 物体沿直线运动时,如果在相等时间内通过的路程都相等,这种 ...
- matlab解决匀速直线运动,匀速直线运动的意思
匀速直线运动 词语匀速直线运动 拼音yún sù zhí xiàn yùn dòng 匀速直线运动基本意思 简称"匀速运动".速度的大小和方向都不变的运动,即加速度等于零的运动. ...
- Kalman滤波算法详细推导及简单匀速直线运动程序仿真(matlab)
Kalman滤波算法详细推导及简单匀速直线运动程序仿真(matlab) 起初只是知道Kalman滤波的核心公式和会用,没有仔细研究,最近老师让讲Kalman算法,所以系统的学习了该算法,并结合匀速直线 ...
- Matlab编程实现二维空间内目标的匀速直线运动和匀速圆周运动
Matlab编程实现二维空间内目标的匀速直线运动和匀速圆周运动 Matlab是一种常用的数学软件,它集成了许多种数据分析.可视化工具和编程语言.在本文中,我们将介绍如何使用Matlab编程实现二维空间 ...
- HTML一条线匀速直线运动,利用简易“节拍器”演示匀速直线运动和变速直线运动...
[制作方法] 自制的简易"节拍器"如图3.6-1所示. 取一个无色透明带塞的玻璃瓶,在瓶塞上开两个小孔,左边插入一根短的尖嘴玻璃管,右边插入一根弯头玻璃管,使其端部靠近瓶底,在另一 ...
- HTML一条线匀速直线运动,初中物理匀速直线运动的知识点归纳
初中物理匀速直线运动的知识点归纳 定义:匀速直线运动 物体沿直线运动时,如果在相等时间内通过的路程都相等,这种运动叫匀速直线运动 做匀速直线运动的物体在任意相同时间内通过的路程都相等,即路程与时间成正 ...
- HTML一条线匀速直线运动,百科趣题_答案_图是利用每秒闪光10次的照相装置分别拍摄到的四个小球的频闪照片,其中哪幅照片表示小球在做匀速直线运动...
匀速直线运动定义: 物体在一条直线上运动,如果在相等的时间内速度的变化相等,这种运动就叫做匀变速直线运动. 沿着一条直线,且加速度不变的运动,叫做匀变速直线运动. s(t)=at^2/2+v(0)t= ...
- c语言设计匀速直线运动,C语言课程设计指导书2015版(试用版)201506.doc
C语言课程设计指导书2015版(试用版)201506精选 C语言课程设计 指导书 信息技术教学与实验中心 2015-04 目 录 第1章 C语言课程设计基本要求-------------- 1 §1. ...
最新文章
- linux内核map图
- PHP扩展CURL的用法详解
- [LeetCode] Isomorphic Strings - 字符串操作:数组计数字符个数问题
- 消息发送样例介绍和步骤分析
- 配置exchange 2010高可用群集服务(dag)
- jdbc的预处理中如何处理模糊查询
- java string rt_如何使jvm加载我的java.lang.String而不是rt.jar中的那个
- mysql注入5.0以上_[Injection]对MYSQL 5.0服务器以上版本注入
- python和php合成,Python照片合成的方法详解
- 阴霾散去,迎来曙光!
- AD调出LM358\393元器件不同部分A和B的part
- php服务器session共享,PHP实现多WEB服务器共享SESSION的方法(2)
- Groovy 学习手册(4)
- 用ajax来上传图片,使用AJAX上传图片
- win环境下jdk7与jdk8共存问题
- PPT素材模板哪个网站资源内容比较丰富?
- 洛谷P1007独木桥
- 数据库字符集utf8和utf8mb4的详细区别
- 矩阵论(一):广义逆矩阵(上)
- dsp图像处理Prewitt算子边缘检测