同态滤波

在生活中会得到这样的图像,它的动态范围很大,而我们感兴趣的部分的灰度又很暗,图像细节没有办法辨认,采用一般的灰度级线性变换法是不行的。图像的同态滤波属于图像频率域处理范畴,其作用是对图像灰度范围进行调整,通过消除图像上照明不均的问题,增强暗区的图像细节,同时又不损失亮区的图像细节. 我们人眼能分别得出图像的灰度不仅仅是由于光照函数(照射分量)决定,而且还与反射函数(反射分量)有关,反射函数反映出图像的具体内容。光照强度一般具有一致性,在空间上通常会有缓慢变化的性质,在傅立叶变换下变现为低频分量,然而不一样的材料的反射率差异较大,经常会引起反射光的急剧变化,从而使图像的灰度值发生变化,这种变化与高低频分量有关。为了消除不均匀照度的影响,增强图像的高频部分的细节,可以采用建立在频域的同态滤波器对光照不足或者有光照变化的图像进行处理,可以尽量减少因光照不足引起的图像质量下降,并对感兴趣的景物进行有效增强,这样就在很大程度上做到了原图像的图像增强。

同态滤波是一种在频域中进行的图像对比度增强和压缩图像亮度范围的特殊方法。同态滤波器能够减少低频并且增加高频,从而能减少光照变化并锐化边缘细节。图像的同态滤波技术的依据是图像获取过程中的照明反射成像原理。它属于频域处理,作用是对图像灰度范围进行调整,通过消除图像上照明不均的问题。非线性滤波器能够在很好地保护细节的同时, 去除信号中的噪声,同态滤波器就是一种非线性滤波器,其处理是一种基于特征的对比度增强方法,主要用于减少由于光照不均匀引起的图像降质,并对感兴趣的景物进行有效地增强。

同台系统适用于服从广义叠加原理,输入和输出之间可以用线性变化表示的系统。图像的同态滤波是基于以入射光和反射光为基础的图像模型上的,如果把图像函数表示为光照函数,即照射分量与反射分量两个分量的乘积,那么图像的模型可以表示为,其中的性质取决于成像物体的表面特性。通过对光照分量和反射分量的研究可知,光照分量一般反映灰度的恒定分量,相当于频域中的低频信息,减弱入射光就可以起到缩小图像灰度范围的作用;而反射光与物体的边界特性是密切相关的,相当于频域中的高频信息,增强反射光就可以起到提高图像对比度的作用。因此,同态滤波器的传递函数一般在低频部分小于1,高频部分大于1。

进行同态滤波,首先要对原图像取对数,目的是使得图像模型中的乘法运算转化为简单的加法运算:

再对对数函数做傅立叶变换,目的是将图像转换到频域:

同态滤波器的传递函数H(U,V)

选择适当的传递函数,压缩照射分量的变化范围,削弱,增强反射分量的对比度,提升,增强高频分量,即确定一个合适的。由上分析可知的大致形状如上图所示。

假设用一个同态滤波器函数来处理原图像的对数的傅立叶变换,得

逆变换到空域得

再对取指数即得到最终处理结果:,相当于高通滤波。

同态滤波的原理框图

算法实现及结果分析

核心算法

void homomorphicFiltering(unsigned char* des, const unsigned char* src, int height, int width, double cutoff, int n, double cvar)
{
    int x,y;

    int ewidth,eheight;
    Complex* temp = new Complex[width * height];    //图像的复数形式
    Complex* eimg1;     //扩展后图像(适应FFT的大小要求)
    Complex* eimg2;     //扩展后图像
    Complex* filter;    //滤波器

    //1.转换图像形式,并取log
    for(y = 0; y < height; y++)
    {
        for(x = 0; x < width; x++)
        {
            temp[y * width + x].real = log((double)src[y * width + x] + 1);
            temp[y * width + x].imag = 0;
        }
    }

    //2.扩展源图像
    expand(&eimg1, &ewidth, &eheight, temp, width, height);
    eimg2 = new Complex[ewidth * eheight];
    filter = new Complex[ewidth * eheight];

    //3.获得滤波器
    getButterworthFilter(filter, ewidth, eheight, cutoff, n);

    //4.FFT
    FFT2D(eimg2, eimg1, ewidth, eheight);

    //5.滤波
    filtering(eimg2, ewidth, eheight, filter);

    //6.IFFT
    IFFT2D(eimg1, eimg2, ewidth, eheight);

    //7.还原并取exp
    for(y = 0; y < height; y++)
    {
        for(x = 0; x < width; x++)
        {
            temp[y * width + x].real = exp(eimg1[y * ewidth + x].real);
        }
    }

    //8.归一化
    clipNormalization(temp, width, height, cvar);

    //9.转换为图像形式
    for(y = 0; y < height; y++)
    {
        for(x = 0; x < width; x++)
        {
            des[y * width + x] = (unsigned char)temp[y * width + x].real;
        }
    }
}

  

从实验结果可知:在频域内的同态滤波方法只要选取适当的滤波器参数,就可以在增强图像高频信息的同时保留部分低频信息,达到压缩图像灰度的动态范围,增强图像的对比度的效果。本文通过光照场的频谱分析,能快速准确地选取滤波器参数。改进的同同态滤波器的参数获取办法,有利于快速获得增强效果好的参数,对光照不均匀的图像的补偿效果更明显。

时间: 2024-10-26 09:20:01

同态滤波的相关文章

MATLAB图像处理_同态滤波

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

同态滤波的补充说明

之前介绍过同态滤波的计算公式(http://blog.csdn.net/carson2005/article/details/6621402),本文为一些补充说明. 实际应用中,经常碰到这样一类图像,它们的灰度动态范围很大,即:黑的部分很黑,白的部分很白,用户感兴趣的中间一部分灰度级范围又很小,分不清物体的灰度层次和细节.遇到这种情况,一般的灰度线性变换没法解决问题,因为扩展灰度级虽然可以提高图像的反差,但会使得动态范围变的更大.而压缩灰度等级,虽然可以减少动态范围,但物体灰度层次和细节就更看不

灰度图像--频域滤波 同态滤波

学习DIP第27天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

同态滤波(Homomorphic filtering)

引言 一副图像f(x,y)可以表示为其照度分量i(x,y)和反射分量r(x,y)的乘积,由于照度相对变化很小,可以看作是图像的低频成份,而反射率则是高频成份.通过分别处理照度和反射率对像元灰度值的影响,达到揭示阴影区细节特征的目的. 算法 对于一副图像f(x,y)可由照射分量i(x,y)和反射分量r(x,y)的乘积,即 f(x,y)=i(x,y)r(x,y) 上式不能直接用于对照度和反射的频率分量进行操作,因此上式取对数 Inf(x,y)=lni(x,y)+lnr(x,y) 对上式两边取傅里叶变

图像增强之——同态滤波

说明:同态滤波是频域滤波的一种,但是相比之下同态滤波有自己的优势, 频域滤波可以灵活地解决加性噪声问题,但无法消减乘性或卷积性噪声. 同态滤波是一种在频域中同时将图像亮度范围进行压缩和将图像对比度进行增强的方法,是基于图像成像模型进行的. 一幅图f(x,y)可以表示成照度分量i(x,y)与反射分量r(x,y)的乘积,同态滤波基本思想: 为了分离加性组合的信号,常采用线性滤波的方法,而非加性信号组合常用同态滤波的技术将非线性问题转化成线性问题处理,即先对非线性(乘性或者卷积性)混杂信号作某种数学运

基于OpenCV的同态滤波

在4.0.1节中,我们已经介绍了一个简单的图像形成模型,即照射-反射模型.这个模型可以开发一种频率处理程序,该程序可以同时压缩灰度范围和增强对比度来改善一幅图像的表现.图像形成的照射-反射模型的表达式如下: 6.4- 16 上式不能直接用于对照射和反射的频率分量进行操作,因为两个分量的傅里叶变换之积,不等于原图像的傅里叶变换: 6.4- 17 但是,我们可以定义如下变换关系: 6.4- 18 然后再对上式两边做傅里叶变换: 6.4- 19 得到下面的傅里叶变换域的等式: 6.4- 20 其中,

PIE SDK同态滤波

1.算法功能简介 同态滤波是减少低频增加高频,从而减少光照变化并锐化边缘或细节的图像滤波方法. 同态滤波的流程为:空间域图像→对数运算→傅里叶正变换→同态滤波――傅里叶逆变换→指数运算→同态滤波结果.不同空间分辨率的遥感图像,使用同态滤波的效果不同.如果图像中的光照可以认为是均匀的,那么,进行同态滤波产生的效果不大.但是,如果光照明显是不均匀的,那么同态滤波有助于表现出图像中暗处的细节. PIE SDK支持算法功能的执行,下面对同态滤波算法功能进行介绍. 2.算法功能实现说明 2.1. 实现步骤

【自动语音识别课程】第二课 语音信号分析

[传送门] [自动语音识别课程]第一课 统计语音识别介绍 原文地址:http://blog.csdn.net/joey_su/article/details/36414877 转载请注明出处,欢迎交流. 概述 针对ASR的语音信号分析 特征 频谱分析 倒谱分析 标准特征:MFCC和PLP分析 动态特征 第一课的结尾提到了语音识别的框图,下图展示了信号分析技术在语音识别系统中的位置: 我们先来认识下语音的产生过程: 语音是在发音器官和声道共同作用下产生的.说话时,声带振动发出具有一定周期特性(基音

图像增强处理

图像增强是图像处理中一个重要的内容,在图像生成,传输或变换的过程中,由于多种因素的影响,造成图像质量下降,图像模糊,特征淹没,给分析和识别带来困难.因此,按特定的需要将图像中感兴趣的特征友选择地突出,衰减不需要的特征,提高图像的可懂度是图像增强的主要内容.图像增强不考虑图像降质的原因,而且改善后的图像也不一定逼近原图像,这是它与图像复原本质的区别.图像增强的主要目的有两个:一是改善图像的视觉效果,提高图像的清晰度:二是将图像转换成一种更适合人类或机器进行分析处理的形式,一边从图像中获取更多有用的