zoukankan      html  css  js  c++  java
  • 同态滤波

    这幅图不错

           今天的废话是,图像处理是个很大的很混乱的科目,因为任何内容都至少属于两个大框架,比如通态滤波,听起来就是频域滤波,但它的另一个身份还属于图像增强。如果单纯的想把内容归类,这个很困难,因为图像的知识结构是图,而不是简单的树。

        新买了一个书《图像处理基础》,像是一本字典,或者是题库,里面的标题像十万个为什么,要参加校招的同学可以临时复习下,当然,当我们深入学习时这本书也是一本不错的指导手册,像一本纸质的wiki,一本不错的工具书。

        本文结构图:


    成像原理

            成像原理就是我们为什么能看到东西的原理,和光学有关,但这里我们对其进行抽象,如果完整建模成像的原理,将会是很复杂的模型,暂时不考虑复杂的情况,而只考虑两种主要参数,入射分量和反射分量。

        例如对于一幅图像,对于像素点(x,y)我们设其值为f(x,y)那么可以确定的是f(x,y)的是大于0且有限的:


        成像的物体受到光源的照射,反射到成像元件或者人眼里的是入射光照反射的部分,换个理解反射分量类似于一个衰减系数,例如入射光是1,反射分量是0.7,那么我们看到的是1x0.7=0.7,如果物体是黑洞,那么反射分量是0,如果绝对无减少的反射,那么反射分量是1;入射分量为i(x,y),反射分量(我感觉叫反射系数更准确)r(x,y),那么成像可以被描述为:


        并且存在关系:



        对于单色图像,图像的像素值表示该点的灰度强度


        灰度强度介于最大和最小值之间,并且最小值大于0,最大值有限,实际上满足称为灰度级通常是[0,max],对于8bit灰度像素,灰度级为[0,255]。

    同态滤波

        介绍同态滤波之前,必须要了解下为什么叫同态,因为这个问题我也研究了很久,根据wiki上的介绍,同态的本质是一种映射,但是这种映射拥有特殊的性质,这种性质就是保持相关的属性不变,相关属性包括,幺元,逆元,二元运算等。看个例子:

        典型的例子就是:

        其中f可以为:

        那么f(2+4)=f(2)*f(4)。这个映射f就是一个同态映射。加法运算的幺元0映射结果是乘法的幺元1。满足之前我们提到的性质。

    数学原理

           根据前面的成像原理,和同态定义,我们提出了同态滤波,同态滤波,同态滤波的特点是,压缩灰度范围,同时增强对比度,增强对比度类似于增加像素灰度的方差,而压缩灰度值一定程度上限制了方差的大小,所以同态滤波有点类似于,给你减工资,还要让你工作积极性高涨。。。。。

        根据上文成像原理的假设,图像f(x,y)=i(x,y)*r(x,y),但对于傅里叶变换(DFT)不存在下面关系,因为乘法的傅里叶变换不是傅里叶变换的乘法:


    所以我们引进了自然对数函数,一个使乘法变成加法的神奇运算,我们定义:


    那么就可以利用傅里叶的线性得到:


    或者:


    Fi和Fr分别是ln i(x,y)和ln r(x,y)的傅里叶变换。我们设计一个滤波器对Z进行滤波,就能得到:


    进行傅里叶逆变换,就得到空间图像:


    其中,我们根据前面定义能得到:


    所以处理后的图像s可以表示为:


    因为之前我们做了取自然对数运算,作为还原,我们计算:


    其中:


    i0和r0是滤波处理后的入射分量和反射分量。

    整个过程用下面流程图表示:


    更进一步,在图像中,变换缓慢的部分为照射分量,和发生突变通常是由反射分量组成,特别是物体连接处,对应于频谱就是高频和低频部分,虽然只是粗略的近似,但结果在图像中是很有用的。

    数学公式:


    滤波器的形状:


    应用

         对照明变化明显的图像进行预处理,减少图像照明变化的特征,增强较暗部分的细节

    转自:http://blog.csdn.net/tonyshengtan/article/details/43024093

    下面这篇的方法有时间可以试下

    https://wenku.baidu.com/view/b59460f5f80f76c66137ee06eff9aef8941e4816.html

  • 相关阅读:
    使用Spring MVC统一异常处理实战(转载)
    java 异常
    Java 接口和内部类
    JAVA 继承
    Linux中profile(转载)
    java 对象与类
    Java基本的程序结构设计 数组
    Python虚拟机函数机制之位置参数(四)
    Python虚拟机函数机制之参数类别(三)
    Python虚拟机函数机制之名字空间(二)
  • 原文地址:https://www.cnblogs.com/wyuzl/p/7885602.html
Copyright © 2011-2022 走看看