图像复原之退化模型

图像复原之退化模型

概述

引言

  • 退化就是将一幅正常的图像给弄得不正常,从而验证后续的复原方法是否能达到预期的效果。

图像复原之退化模型_第1张图片

  • 如上图所述,正常的图像经过退化函数H还需要加噪声,下面我们来介绍几种常见的噪声模型。

图像复原之退化模型_第2张图片

  • 高斯噪声来源于诸如电子线路的传感器噪声;瑞利噪声源于深度成像的表征噪声现象;指数和伽马源于激光成像。
  • 对于这些噪声的去除估计大家应该会想到很多的方法。空域包括如均值滤波,统计滤波中的中值滤波,频域的带阻滤波和陷波器等。
  • 这里想强调的是忽略考虑滤波器复杂度的问题的话,自适应滤波器也应该纳入我们的考虑范围之类。所谓的自适应就是指让系统实现反馈调节自己的参数,从而达到最佳的效果。频域的消除噪声自适应滤波器是最佳陷波器。

位置不变的线性退化

图像复原之退化模型_第3张图片

  • 点扩散可以概括为空阈的卷积即即实现了退化

建模估计退化

  • 首先介绍大气湍流模型,让图像具有一种大气湍流模糊的退化效果。

图像复原之退化模型_第4张图片

  • 下面重点来了,运动模糊。即由于摄像头的运动引起的图像退化。
    图像复原之退化模型_第5张图片

  • 下面我们用matlab实现一下原图像卷积一个运动滤波器。

    LEN = 31;THETA = 11;                            PSF=fspecial('motion',LEN,THETA);  
    

图像复原之退化模型_第6张图片

  • 这里在再介绍一波fspecial的用法吧

图像复原之退化模型_第7张图片

  • 完事具备了,接下来我们用线性移动滤波和圆形均值滤波(低通模糊效果)再来实现退化

图像复原之退化模型_第8张图片

  • 至此,退化部分介绍完毕了。接下来就是使用各种滤波来实现图像的复原了,这其中自然包含了千呼万唤始出来的维纳滤波了。

示例代码

clc;
clear;
close all;
I = imread('jyy.jpg');  % 读入图像
I = rgb2gray(I);  
I = I(60+[1:256],222+[1:256],:);       % 图像剪切
subplot(1,2,1);  imshow(I);     % 显示原始图像
title('原始图像');                     % 设置图像标题
LEN = 31;                                    % 模糊长度
THETA = 11;                                  % 角度
PSF = fspecial('motion',LEN,THETA);          % 生成PSF
Blurred = imfilter(I,PSF,'circular','conv'); % 图像卷积计算
subplot(1,2,2);imshow(Blurred);           % 显示处理后的图像
title('图像卷积运算效果');                % 设置图像标题

clc;
clear;
close all;
I = imread('jyy.jpg');  % 读入图像
I = rgb2gray(I);  

subplot(2,2,1); imshow(I);
xlabel('(a) 原始图像');
H = fspecial('motion',20,45);
MotionBlur = imfilter(I,H,'replicate');
subplot(2,2,2); imshow(MotionBlur);
xlabel('(b) 动态模糊图像');

H = fspecial('disk',10);
blurred = imfilter(I,H,'replicate');
subplot(2,2,3);imshow(blurred);
xlabel('(c) 模糊图像');

H = fspecial('unsharp');
sharpened = imfilter(I,H,'replicate');
subplot(2,2,4); imshow(sharpened);
xlabel('(d) 图像锐化效果');

你可能感兴趣的:(数字图像处理,图像复原,退化)