由退化函数H退化的图像复原的最简单的方法是直接作逆滤波,设图像退化前的傅里叶变换为F(u,v),退化后的傅里叶变换为G(u,v),系统函数即退化函数的傅里叶变换为H(u,v)。函数

所谓直接逆滤波,就是用退化函数除退化图像的傅里叶变换,获得退化前图像的傅里叶变换的估计,ui

为F(u,v)的估计,则

,同时

,其中N(u,v)为噪声的傅里叶变换。所以,可得

,由该式可知,即便知道退化函数,也不能准确的复原图像,由于N(u,v)未知,甚至有更糟的状况是若是退化函数是零或是很是小的值,则N(u,v)/H(u,v)的值比较大,很容易支配F(u,v)的估计值。解决这个问题的一种方法是限制滤波的频率,从频谱图可知,高频份量的值接近0,而H(0,0)在频率域中一般是H(u,v)的最高值。所以可缩短滤波半径,使经过的频率接近原点,减小遇到零值的几率。spa

直接逆滤波的MATLAB代码以下code

image_o=imread('C:\Program Files\MATLAB\R2013a\bin\work\图像复原\lena.bmp');

subplot(1,3,1);

imshow(image_o);

title('原图像');

%频率域退化图像,退化函数H(u,v)=exp(-0.0025*( (u-M/2).^2+(v-N/2).^2).^(5/6) )

%傅里叶变换

f=im2double(image_o);

F=fft2(f);

F=fftshift(F);

%执行退化

[M,N]=size(F);

[u,v]=meshgrid(1:M,1:N);%生成二维坐标系

H=exp(-0.0025* ( (u-M/2).^2+(v-N/2).^2).^(5/6) );

F=F.*H;

%傅里叶反变换

X=ifftshift(F);

x=ifft2(X);

x=uint8(abs(x)*256);

subplot(1,3,2);

imshow(x);

%

title('退化图像');

image_d=imread('C:\Program Files\MATLAB\R2013a\bin\work\图像复原\lena_deterioration.bmp');

%直接逆滤波图像复原

ff=im2double(image_d);%将图像灰度值归一化到0-1之间

% 傅里叶变换

f_Id=fft2(ff);

f_Id=fftshift(f_Id);

fH_Id=f_Id;

[M,N]=size(fH_Id);

% 逆滤波

threshold=78;

if threshold>M/2

%全滤波

fH_Id=fH_Id./(H+eps);

else

%对必定半径范围内进行滤波

for i=1:M

for j=1:N

if sqrt((i-M/2).^2+(j-N/2).^2)

fH_Id(i,j)=fH_Id(i,j)./(H(i,j)+eps);

end

end

end

end

% 执行傅立叶逆变换

fH_Id1=ifftshift(fH_Id);

f_new=ifft2(fH_Id1);

f_new=uint8(abs(f_new)*255);

subplot(1,3,3);

imshow(f_new);

title('滤波半径=78的逆滤波复原图像');

效果以下

从实验结果可知,滤波为78比较适宜。blog

matlab 直接逆滤波,图像复原之直接逆滤波相关推荐

  1. matlab自适应逆控制,基于matlab仿真模块的自适应有源噪声逆控制研究

    ATE 农业技术与装备 X2 c(q-1) p(q-1) u2 C( x) p(q-1) LMS M(q-1) p(q-1) w( q-1) w( q-1) ! ! e2 d2 + - - + p(q ...

  2. 基于MATLAB的离焦模糊图像复原

    基于MATLAB的离焦模糊图像复原 摘 要 图像在获取.传输和存储过程中会受到如模糊.失真.噪声等原因的影响,这些原因会使图像的质量下降.因此,我们需要采取一定的方法尽可能地减少或消除图像质量的下降, ...

  3. 噪点检测matlab,基于噪点检测的中值滤波图像去噪方法

    摘  要: 图像去噪是图像处理中一个非常重要的环节.针对传统中值滤波方法存在的不足,提出一种新的基于噪点检测的自适应中值滤波图像去噪方法.该方法通过自适应地改变滤波窗口的大小,局部检测并判断极值点是否 ...

  4. 协变逆变java_Java中的逆变与协变

    什么是逆变与协变 协变(Covariance) 如果B是A的子类,并且F(B)也是F(A)的子类,那么F即为协变 逆变(Contravariance) 如果B是A的子类,并且F(B)成了F(A)的父类 ...

  5. Matlab图像处理创新实践-实验2【图像滤波基础(2)】

    Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...

  6. Matlab图像处理创新实践-实验1【图像滤波基础(1)】

    Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...

  7. 信息学奥赛一本通 1311:【例2.5】求逆序对 | 1237:求排列的逆序数 | OpenJudge NOI 2.4 7622:求排列的逆序数 | 洛谷 P1908 逆序对

    [题目链接] ybt 1311:[例2.5]求逆序对 ybt 1237:求排列的逆序数 OpenJudge NOI 2.4 7622:求排列的逆序数 洛谷 P1908 逆序对 ybt 1311,123 ...

  8. 在matlab环境中实现图像的傅里叶变换,matlab用傅里叶变换实现图像的低通滤波

    低通滤波器指去除图像中的高频成分,而低通滤波器指去除图像中的高频成分. 考虑的有三种低通滤波器:理想滤波器.布特沃斯滤波器和高斯滤波器. 理想低通滤波器:以原点为圆心,D为半径的圆内, 无衰减地通过所 ...

  9. 基于MATLAB 的运动模糊图像复原

    基于MATLAB 的运动模糊图像复原 研究目的 在交通系统. 刑事取证中图像的关键信息至关重要, 但是在交通. 公安.银行. 医学.工业监视.军事侦察和日常生活中常常由于摄像设备的光学系统的失真. 调 ...

  10. java百度地图逆地址解析_百度地图逆地址解析

    什么是Geocoding? Geocoding API 是一类简单的HTTP接口,用于提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,用户可以使用C# .C++.Java等开发语言发送HTTP ...

最新文章

  1. vmware虚拟机异常关闭处理
  2. 《分布式服务架构:原理、设计与实战》第二章彻底解决分布式系统一致性的问题...
  3. 跨浏览器设置标签样式
  4. Hessian的使用以及理解(转)
  5. zabbix proxy 分布式监控
  6. python局部变量含义_Python的变量
  7. 计算机技术博客博客知乎,我的技术博客的选择:CSDN、博客园、简书、知乎专栏仍是Github Page?...
  8. scjp java程序员_Sun认证Java程序员SCJP考题常见陷阱
  9. Beanstalkd消息队列的安装与使用
  10. Discuz插件,批量Discuz采集发布插件
  11. 基于php的超市仓库管理系统
  12. Spacy 常见词性标注
  13. 深圳中科智美3D精确数据化整形软件系统三维扫描模块
  14. 云计算概念及发展历程
  15. 可以指定列fillna吗_京东e卡可以购买指定的京东自营商品?是真的吗
  16. Ubuntu系统shipyard安装
  17. 分享4个不为人知的黑科技网站,每一个都让你大开眼界
  18. python替换所有标点符号 正则_Python处理中文标点符号大集合
  19. 利用Python进行数据分析——数据载入、存储及文件格式(7)
  20. 安卓手机丢失的数据还可以恢复吗

热门文章

  1. H3C认证安全技术高级工程师
  2. ❤️ Python 利用NetworkX绘制精美网络图 ❤️
  3. 心电信号质量评估——ecg_qc工具包使用方法
  4. 32位计算机支持word系统,Office 32位与64位版本有什么区别?
  5. 2021运营App推广必备的几款工具
  6. Centos服务器巡检报告
  7. Spark 高难度对话 SQL Server - 续篇
  8. 【中间件】pika安装及性能测试
  9. 打开dashboard报错:xcelsius已经停止工作
  10. 学习计算机it编程的 10 大好处