基于matlab的退化图像复原(二)------逆滤波复原

差不多就是这个理论,傅里叶变换之后除掉退化函数的傅里叶变换,就变回来了。

说是这么说,写出来就是这样。手写公式简单得多,人懒就是任性。

matlab代码。

clc
I=imread(‘src.png‘);
I0=rgb2gray(I);
subplot(231);
imshow(I0);
title(‘src‘);
[m,n]=size(I0);
F=fftshift(fft2(I0));
k=0.0025;
H=[];
for u=1:m
    for v=1:n
        q=((u-m/2)^2+(v-n/2)^2)^(5/6);
        H(u,v)=exp((-k)*q);
    end
end
G=F.*H;
I1=abs(ifft2(fftshift(G)));
subplot(232);
imshow(uint8(I1))
title(‘退化‘);

I2=imnoise(uint8(I1),‘gaussian‘,0,0.001);
subplot(233);
imshow(uint8(I2));
title(‘加噪声‘);
F0=fftshift(fft2(I2));
F1=F0./H;
I3=ifft(fftshift(F1));
subplot(236);
imshow(uint8(I3));
title(‘退化噪声复原‘)

F2=fftshift(fft2(I1));
F3=F2./H;
I4=ifft(fftshift(F3));
subplot(235);
imshow(uint8(I4));
title(‘退化复原‘)

F4=fftshift(fft2(I0));
I5=ifft(fftshift(F4));
subplot(234);
imshow(uint8(I5));
title(‘直接傅里叶变换回来‘)

  

上面主要是傅里叶除的矩阵要一样维度,所以给了个[m,n]的矩阵,好像局限性有点大。

我个人想是不是逆卷积的效果更好一点,主要是傅里叶变来变去的相位难以控制。

最后原因:

主要是这个效果,我相信这个是复原理论才是有鬼了。

   参考《MATLAB图像处理超级学习手册》

时间: 2024-08-01 11:21:48

基于matlab的退化图像复原(二)------逆滤波复原的相关文章

基于matlab的退化图像复原(四)------Lucy-Richarson滤波复原

Lucy-Richarson滤波复原 I0=imread('src.png'); I=rgb2gray(I0); subplot(341); imshow(I); title('src'); subplot(345); imshow(I); title('src'); subplot(349); imshow(I); title('src'); H=fspecial('motion',20,30); %运动卷积的偏移矩阵 MotionBlur=imfilter(I,H); %卷积 subplot

基于matlab的退化图像复原(一)------图像退化处理

图像恢复技术是图像处理领域一类重要的处理技术,与图像增强等其他基本图像处理技术类似,该技术也是以获取视觉质量得到某种程度改善为目的的,所不同的是图像恢复过程需要根据指定的图像退化模型来完成,根据这个退化模型对在某种情况下退化或恶化了的退化图像进行恢复,以获取到原始的.未经过退化的原始图像.换句话说,图像恢复的处理过程实际是对退化图像品质的提升,并通过图像品质的提升来达到图像在视觉上的改善. 这是MATLAB的自带函数库里的一些函数, 把它调用出来研究理解一下 分别是运动模糊,圆盘模糊,钝化模糊.

基于matlab的退化图像复原(三)------维纳滤波复原

还是照着书上推了一遍, 反正写一遍之后很好理解, 也许是只是这点算法比较简单基础... 讲到底还是统计的知识,二维的最小二乘法, 让均方差最小 放代码: I=imread('src.png'); I0=rgb2gray(I); subplot(151); imshow(I0); title('src'); H=fspecial('motion',30,45); %运动卷积的偏移矩阵 MotionBlur=imfilter(I0,H,0,'conv'); %卷积 MF=imfilter(I0,H,

[数字图像处理]图像复原--逆滤波

1.逆滤波的问题点 图像的老化,可以视为以下这样的一个过程.一个是退化函数的影响(致使图片模糊,褪色等),一个可加性噪声的影响. 用算式表示为 前几篇博文,主要是介绍可加性噪声的去除.本博文,主要介绍图像的逆滤波,即退化函数的去除.然而,逆滤波在空间域内的处理是很不方便的. 简单的来考虑,加法的逆运算是减法,乘法的逆运算的除法,微分的逆运算是积分(严密一点说是不定积分).那么就可以得到一个简单的结论了,要出去卷积的话,肯定需要用到卷积的逆运算.卷积的逆运算是---------反卷积,额,好像是一

图像去模糊(逆滤波)

引言 图像模糊是一种拍摄常见的现象,我曾在图像去模糊(维纳滤波) 介绍过.这里不再详述,只给出物理模型,这里我们仍在频率域表示 G(u,v)=H(u,v)F(u,v)+N(u,v)(1) 其中提到最简单的复原方法是直接做逆滤波(Inverse filter). F^(u,v)=G(u,v)H(u,v)(2) 该除法是阵列操作,即按位除. 在含有噪声情况下,将(1)式两端除以H(u,v) F^(u,v)=F(u,v)+N(u,v)H(u,v)(3) 这里N(u,v)未知,式子表明,即使知道退化函数

十三种基于直方图的图像全局二值化算法原理、实现、代码及效果(转)

十三种基于直方图的图像全局二值化算法原理.实现.代码及效果(转) http://www.cnblogs.com/carekee/articles/3643394.html 图像二值化的目的是最大限度的将图象中感兴趣的部分保留下来,在很多情况下,也是进行图像分析.特征提取与模式识别之前的必要的图像预处理过程.这个看似简单的问题,在过去的四十年里受到国内外学者的广泛关注,产生了数以百计的阈值选取方法,但如同其他图像分割算法一样,没有一个现有方法对各种各样的图像都能得到令人满意的结果. 在这些庞大的分

基于MATLAB的GUI(Graphical User Interface)音频实时显示设计

摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有”录音“和”播放“两个控件,哈哈,够简洁吧.通过”录音“按钮可以实现声音从电脑的声卡录入,并且实时显示录入声音的时域图形和频域图形:待录音结束,通过”播放“按钮可以播放刚录入的声音,并且一边播放一遍实时显示时域和频域图形.本设计的编码在matlab2013a上亲测,可以实现... 一.首先matlab的gui界面设计 打开matlab—>在命令行执行guide—>出现gui编辑

【原】基于matlab的蓝色车牌定位与识别---绪论

本着对车牌比较感兴趣,自己在课余时间摸索关于车牌的定位与识别,现将自己所做的一些内容整理下,也方便和大家交流. 考虑到车牌的定位涉及到许多外界的因素,因此有必要对车牌照的获取条件进行一些限定: 一.大部分车牌照都是用自己的手机照的,大小在1M左右,距离车牌照距离3m左右.这样保证所获取的车牌照有一定的规律,否则随便一张是无法进行定位的. 二.本次仅针对蓝色车牌,至于其他像黄色,黑色车牌的没有做研究.感兴趣的可以自己找些资料,毕竟要做到全面,工作量还是很大的. 三. 相关的参考资料网上也挺多的,这

基于MATLAB的IIR滤波器设计与实现

基于MATLAB的IIR滤波器设计与实现 IIR滤波器的设计主要有经典设计法.直接设计法和最大平滑滤波器设计法三种方法. 1.经典设计法是基于模拟滤波器的变换原理,首先根据滤波器的技术指标设计出相应的模拟滤波器,然后再离散化为满足给定技术指标的数字滤波器.对应的工具函数由完全设计函数——butter.cheby1.cheby2.ellip.besself:阶数估计函数——buttord.cheb1ord.cheb2ord.ellipord:低通模拟原型滤波器函数——buttap.cheb1ap.