基于图像模糊度统计和盲卷积滤波的图像去模糊算法matlab仿真

 

1.前言

基于图像模糊度统计和盲卷积滤波的图像去模糊算法,结合了对图像模糊程度的量化评估和无需预先知道模糊核的图像恢复技术,能够在一定程度上自动分析图像的模糊特性并进行有效复原。

2.算法运行效果图预览

(完整程序运行后无水印)

1

2

3

4

3.算法运行软件版本

Matlab2024b(推荐)或者matlab2022a

4.部分核心程序

(完整版代码包含中文注释和操作步骤视频)

for i = 1:14
    i
    %读取原始的清晰图片
    Names = ['Image\',num2str(i),'.jpg'];
    Io = imread(Names); 
 
    %加入运动模糊
    LEN   = 30; %模糊长度,即实际中的抖动幅度
    THETA = 0;  %模糊角度,即实际中的抖动方向,%一般仅考虑水平抖动和垂直抖动
    %产生抖动因子PSF
    PSF     = fspecial( 'motion',LEN,THETA);
    %产生抖动效果图
    Ipsf    = imfilter(Io,PSF,'circular','conv');
 
    %Ipsf为模拟拍摄输入的图像
    K       = func_fuzzyness(Ipsf);
 
    INITPSF      = ones(size(PSF));
    %进行盲滤波,即不知道一直的抖动因子PSF 
    [J,P]        = deconvblind(Ipsf,INITPSF,func_k(K));
    %计算模糊图像的PSNR
    PSNR1(i) = psnr(rgb2gray(Io),rgb2gray(Ipsf));
    %计算滤波之后的PSNR
    PSNR2(i) = psnr(rgb2gray(Io),rgb2gray(J));
end
23_007m

5.算法理论概述

图像模糊度统计:选择一种合适的模糊度统计方法(如基于梯度或频域的方法),计算图像的模糊度指标,判断图像的模糊程度,为后续参数设置提供参考。​

初始化模糊核和原始图像估计:随机初始化模糊核K和原始图像I的估计值,或者根据图像的一些先验信息进行初始化,如假设模糊核是一个小的高斯分布函数。​

盲卷积滤波迭代:使用选定的求解方法(如交替迭代结合梯度下降),根据目标函数不断更新模糊核K和原始图像I的估计值,直到目标函数收敛或达到预设的迭代次数。​ 

 

posted @ 2026-01-18 20:02  简简单单做算法  阅读(0)  评论(0)    收藏  举报