MATLAB图像处理_同态滤波1

MATLAB图像处理_同态滤波

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/scottly1/article/details/42705271

同态滤波:
利用广义叠加原理对同态系统进行滤波。
同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/ 反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。使用这种方法可以使图像处理符合人眼对于亮度响应的非线性特性,避免了直接对图像进行傅立叶变换处理的失真。
同态滤波的基本原理是:将像元灰度值看作是照度和反射率两个组份的产物。由于照度相对变化很小,可以看作是图像的低频成份,而反射率则是高频成份。通过分别处理照度和反射率对像元灰度值的影响,达到揭示阴影区细节特征的目的。

同态滤波处理的基本流程如下:
S(x,y)---->Log---->DFT---->频域滤波---->IDFT---->Exp---->T(x,y)
其中S(x,y)表示原始图像;T(x,y)表示处理后的图像;Log 代表对数运算;DFT 代表傅立叶变换(实际操作中运用快速傅立叶变换FFT);IDFT 代表傅立叶逆变换(实际操作中运用快速傅立叶逆变换IFFT);Exp 代表指数运算。

下面是一张典型的同态滤波与其他图像处理方式的异同:


实现代码:


 
   
   
   
   
  1. function I3 = test_tontai(I)
  2. I= double(rgb2gray(I));
  3. [M,N]=size(I);
  4. rL= 0.5;
  5. rH= 4.7;%可根据需要效果调整参数
  6. c= 2;
  7. d0= 10;
  8. I1= log(I+ 1);%取对数
  9. FI=fft2(I1);%傅里叶变换
  10. n1= floor(M/ 2);
  11. n2= floor(N/ 2);
  12. for i= 1:M
  13. for j= 1:N
  14. D(i,j)=((i-n1).^ 2+(j-n2).^ 2);
  15. H(i,j)=(rH-rL).*( exp(c*(-D(i,j)./(d0^ 2))))+rL;%高斯同态滤波
  16. end
  17. end
  18. I2=ifft2(H.*FI);%傅里叶逆变换
  19. I3=real( exp(I2));
  20. subplot( 122),imshow(I3,[]);title( '同态滤波增强后');

实验发现,同态滤波有类似于高动态范围压缩的效果,比如可以把图像暗的部分提亮。


下图为原始图像,属于低曝光的一幅图像:



同态滤波后:



注:原创文章,转载请注明出处: http://blog.csdn.net/scottly1/article/details/42705271


阅读更多


	
  • benben236236
    奔跑的程序媛: 作者大大你好,我想转载你这篇文章中的图和代码贴到我的博客里(注明来源),想知道可不可以?(未得你的同意,还没有使用)(1年前#10楼)举报回复
  • u013575440
    平湖望岳: 不错的文章,但有一个小错误要指出:在反傅里叶变换回空域之后做了指数变换,从而和对数变换抵消,但是指数变换回来之后还要-1才是原图。(1年前#9楼)举报回复
  • longyou1243
    longyou1243: 彩色图象转成灰度图后做的同态滤波,之后的结果是灰度图。很好奇博主最后是怎么将彩色图象叠加上去的?我试了一下分R,G,B,每个通道做同态滤波后叠加,但是发现值不对,EXP后的值比较小的其实,叠加后非常黑,博主用了imshow(I3,[])将小值拉匀,但是合成后没有办法拉匀,所以还是希望作者说明一下到底彩色图是怎么叠加的?谢谢~!(2年前#7楼)查看回复(2)举报回复
    • qq_29388435
      影入清漪回复 longyou1243: 大佬解决了没啊,我三个通道合成后图像非常黑(6个月前)举报回复
    • weixin_38736207
      just_yk回复 longyou1243: 我也是,不知道你解决没有啊?(11个月前)举报回复
  • baidu_31771689
    baidu_31771689: 想请教一下我修改rL的值得到了我需要的强调暗部细节的效果

但是为什麽我修改了rH的值看起来却没有变化呢?(3年前#5楼)查看回复(1)举报回复

    • scottly1
      风雨也无晴回复 baidu_31771689: 可能高亮处已经过曝了。。 (1年前) 举报回复
    • Jacky_Ponder
      Jacky_Ponder: 可以请教下为什么是“I1=log(I+1);”,为什么需要+1谢谢 (3年前 #4楼) 查看回复(1)举报回复
      • scottly1
        风雨也无晴回复 Jacky_Ponder: 图像数据可能是0值。 (3年前) 举报回复
    • adong76
      adong76: 暗部细节增强,砖瓦上方的亮部细节也增强了 (3年前 #3楼) 查看回复(4)举报回复
      • scottly1
        风雨也无晴回复 adong76: 建议你看看retinex、hdr相关的算法。 (3年前) 举报回复
      • adong76
        adong76回复 风雨也无晴: 那有什么其他好的解决方案么 (3年前) 举报回复
      • scottly1
        风雨也无晴回复 adong76: 同态滤波有局限性 (3年前) 举报回复
      • scottly1
        风雨也无晴回复 adong76: 是的,同态效果并不是非常理想。 (3年前) 举报回复
    • qq_26924561
      qq_26924561: 处理后变成灰度图像了? (3年前 #2楼) 查看回复(2)举报回复
      • srliph812610
        srliph812610回复 风雨也无晴: 难道不是灰度?你提交了一个彩色图就是彩色图? (2年前) 举报回复
      • scottly1
        风雨也无晴回复 qq_26924561: 是不是灰度图你自己可以看出来 (3年前) 举报回复
    • qq_23086085
      qq_23086085: 不错的内容,学习一下,谢谢分享! (3年前 #1楼) 查看回复(1)举报回复
      • scottly1
        风雨也无晴回复 qq_23086085: 谢谢支持~ (3年前) 举报回复

    • 上一页
    • 1
    • 下一页

同态滤波 matlab 程序 - songyimin1208的博客

10-18 4165

%同态滤波 function I3 = test_tontai(I)

I=double(rgb2gray(I));
[M,N]=size(I);
rL=0.5;
rH=4.7;%…

来自: songyimin1208的博客



			




		

clc
I =imread(‘moon128.bmp’); % tun.bmp
figure(1),subplot(221),imshow(I); title(‘原图’)
I=i…

来自: qingtianuestc的博客



		

频域滤波可以灵活地解决加性噪声问题,但无法消减乘性或卷积性噪声。
      同态滤波是一种在频域中同时将图像亮度范围进行压缩和…

来自: sinat_34035510的博客



			




		

clear all; close all;
I=imread(‘coins.png’);
J=imnoise(I, ‘salt & pepper’, 0.02);%…

来自: zbl1243的博客



no suited ad found
就是要抄袭
就是要抄袭

关注 2篇文章

Nash_String
Nash_String

关注 8篇文章

qq_34725005
qq_34725005

关注 5篇文章

换一批

clear all
I1=imread(‘1.jpg’); …

来自: swelljing的博客



		

img_hazy = imread([‘images/’,image_name,’_input.png’]);
img1=img_hazy(:,:,1);
img2=img_hazy(…

来自: songyimin1208的博客



			

还在靠死工资?天津一批人每天用手机赚双份工资!! 兆径投资 · 燨燚
			




		

1、imshow(I)  显示图像I
Matlab代码:
>> I=imread(‘2.jpg’);
>> imshow(I)
 
显示结果

2、imshow(I,[low…

来自: zhulf0804的博客



		

1、图像亮度不均匀分析
一般情况下,图像f(x,y)是由光…

来自: wangzhen_cv的专栏



		




		

def homofilter(I):
plt.subplot(1,2,1),plt.imshow(I),plt.title(‘原始图像’)


来自: qq_34725005的博客



		

图像的同态滤波原理及实现

同态滤波(Homomorphic filter)是信号与图像处理中的一种常用技术,它采用了一种线性滤…

来自: lidb86的博客



		




			

同态变换基本原理

同态变换一般是指将非线性组合信号通过某种变换,使其变成线性组合信号,从而可以更方便的运用线性操作对信号进行处理…

来自: 兔角与禅



		

http://blog.csdn.net/column/details/16104.html

来自: 梅子黄时雨



		

 式(1)
上面的式子不能直接用来对照度和反射的频率部分分别进行操作,原因是两个函数乘积的傅里叶变换是不可分的,也就是说:   


来自: 计算机视觉小菜鸟的专栏



		




		

色彩恒常性


来自: 梅子黄时雨



偷偷告诉你一个天津不用上班就能轻松赚钱的办法 高川投资 · 燨燚
		




			




		

1、卷积同态系统的基本原理:理解+记忆+掌握
分离组合信号所采用的方法:
1)分离加性信号常采用线性滤波的方法
2)分离非加性组合(如乘性或卷积性组合)信号,常采用同态滤波技术(实际上…

来自: mydots的专栏



			




			

天津65岁大爷,玩手机赚钱3个月后惊人存款曝光! 赟昌投资 · 燨燚
		

使用MATLAB进行图像的去雾操作,网上一搜,这方面的东西很多,貌似已然成为研究的一个方向,大牛辈出!
这里仅仅给出一个有用的代码,能实现图像的去雾操作,详细的看后边…

来自: SCOTT 技术博客



			




		

照明反射模型其中,入射光强取决于光源,由于入射光光强分布函数i(x,y)随空间…

来自: AKUARIUS’ NOTE



			




		

  最近撸了一发图像去雾的算法,主要举四个例子,分别用了全局直方图均衡化,局部直方图均衡化,同态滤波,Retinex增强算法。感兴趣的可以一…

来自: sinat_20350479的博客



揭秘:原来眼袋重这么容易消除,白买了那么多眼霜! 崇贺商贸 · 燨燚
			




		

概述:图像增强与图像复原是不同的,图像增强所要达到的目的是突出感兴趣的目标,而图像复原则是最大限度的恢复到原始图像,比如在采集时混杂入了噪声的图像,图像增强可以用灰度变换,即灰度值的大小的…

来自: SSS



        

你可能感兴趣的:(MATLAB图像处理_同态滤波1)