运动模糊图像处理(一)----- 模糊角度估计的算法研究及matlab实现

本文介绍了运动模糊图像处理的基本原理和两种角度估计方法——频域法与倒谱法。通过MATLAB实现,结合Radon变换检测模糊角度。实验表明,模糊角度估计的精确度受边缘检测阈值、模糊尺度等因素影响,两种方法在不同模糊尺度下表现各异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      运动模糊图像复原研究的整体思路主要是用matlab中的 imfilter()函数对图像进行线性空间滤波,产生运动模糊图像,建立退化模型 → 通过radon变换来获取模糊参数,即点扩散函数PSF → 最后由估计得出的PSF再用维纳滤波对图像进行复原。由仿真实验得知,在已知PSF的情况下使用自相关函数的维纳滤波法对图像进行复原可以获得较好的复原效果,因此难点在于如何精确地估计运动模糊参数PSF。

1、基本原理:

      点扩散函数PSF主要有两个重要参数:(1)模糊方向;(2)模糊尺度。本次主要是针对第一个参数----模糊方向的估计进行了研究。运动模糊方向是指运动方向与水平方向的夹角,由文献得知运动模糊主要是降低了运动方向的高频成分,而对其他方向的高频成分影响较小。常见的辨识方法有频域法和倒谱法,wym 两种方法都试过,仿真实验结果表两种方法各有好处。

      频域法的原理是将退化图像进行二维傅里叶变换,得到具有相互平行的规则明暗条纹的频谱。设暗纹与 x 轴正向夹角为 φ ,运动模糊方向与 x 轴夹角为 θ ,图像尺寸为 M × N,根据傅里叶变换的时频特性可以知道,可通过公式 tan(θ) = tan(φ − 90°) × M/N  得到模糊角度 θ ,因此只要通过 Radon 变换检测出频谱暗条纹与水平方向的夹角即可到运动模糊方向。

      倒谱法的主要原理是先将退化图像进行二维傅里叶变换,然后取对数,再进行反傅里叶变换得到退化图像的倒频谱,分离出退化图像的模糊信息,进而通过 Radon 变换得到运动模糊方向。

      Radon 变换是对频谱图上某一指定角度进行线积分,通过计算1°~180°的Radon变换得到180列的矩阵 R,每一列向量是图像在一个角度上沿一族直线的积分投影,因为积分直线束与频谱中的亮暗条纹平行,所以所得的投影向量中应有一个最大值,在频域法中最大值所对应的列数就等于模糊方向与x轴正方向水平夹角;在倒谱法中,最大值对应的列数 ±90°即为所求的模糊角度。

      具体理论和公式推导就不列出来了。。有兴趣的同学请 STFW。。(什么?不知道什么是 STFW? 请自行 STFW。。)

2、算法实现:

  (1)频域法

    1)     对模糊图像进行灰度化,并计算其二维傅里叶变换;

    2)     对傅里叶变换值的动态范围进行压缩;

    3)     对压缩后的结果进行循环移位,使其低频成分居中;

    4)     用canny算子对压缩居中后的频谱图像进行边缘检测使其二值化;

    5)     将二值化后的频谱图做从1°~180°的radon变换;

    6)     找出radon变换后的矩阵中的最大值,求出其对应的列数 n;

    7)     通过公式 tan(θ) = tan(φ − 90°) × M/N  = tan(n − 90°) × M/N 求出运动模糊方向。

    实现代码:

    

 1 close all;
 2 clear all;
 3 
 4 %% 读入并显示图像
 5 filename = 'ex.jpg';
 6 I = imread(filename);
 7 
 8 figure
 9 imshow(uint8(I));
10 title('原图');
11 
12 %% 生成运动模糊图像
13 PSF 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值