发明名称 一种基于亮度分层的快速三边滤波器色调映射方法
摘要 本发明涉及一种基于亮度分层的快速三边滤波器色调映射方法,属于数字图像处理领域。本发明在现有三边滤波器色调映射方法的基础上,仅对获得平滑后的水平方向梯度图像L′x(p)和经平滑后的垂直方向梯度图像L′y(p)的方法进行了改进,即:通过对水平方向梯度图像Lx(p)的像素值进行分级,然后根据Wk(p)=s(Lx(p)-Ik)和Jk(p)=Wk(p)·Ix(p)分别获得图像Wk(p)和图像Jk(p);再利用图像Wk(p)和图像Jk(p)对水平方向梯度图像Lx(p)进行平滑处理,得到平滑后的水平方向梯度图像L′x(p);使用相同方法,得到平滑后的垂直方向梯度图像L′y(p)。本发明方法与已有的三边滤波器色调映射方法相比较,具有处理速度快,但不损失图像细节的优点。
申请公布号 CN101908207A 申请公布日期 2010.12.08
申请号 CN201010236178.8 申请日期 2010.07.26
申请人 北京理工大学 发明人 沈建冰;刘衡生
分类号 G06T5/00(2006.01)I 主分类号 G06T5/00(2006.01)I
代理机构 代理人
主权项 一种基于亮度分层的快速三边滤波器色调映射方法,其特征在于:具体操作步骤为:第1步:输入一幅高动态范围图像;第2步:根据该图像的红色通道R、绿色通道G、蓝色通道B的通道值,获得该图像中每个像素p的对数域亮度L(p);第3步:利用前向差分法获得每个像素p的对数域亮度L(p)的水平方向梯度图像Lx(p)和垂直方向梯度图像Ly(p);第4步:获得经平滑后的水平方向梯度图像L′x(p);具体为:步骤①:找出第3步得到的水平方向梯度图像Lx(p)中的最大像素值Imax和最小像素值Imin,把从Imin到Imax的区间等分为m个亮度等级,分别记为I0、I1、L L、Im 1;其中,m≥4且m为正整数;步骤②:依次对第k个亮度等级,利用第3步得到的水平方向梯度图像Lx(p),分别根据公式16和公式17得到图像Wk(p)和图像Jk(p);k=1,2,L L,m且k为正整数;Wk(p)=s(Lx(p) Ik) (16)Jk(p)=Wk(p)·Lx(p) (17)其中:s为一高斯函数;步骤③:对第3步得到的水平方向梯度图像Lx(p)进行平滑处理,得到平滑后的水平方向梯度图像L′x(p);具体为:如果Lx(p)∈[It,It+1],1≤t≤m 2且t为正整数;则: <mrow> <msubsup> <mi>L</mi> <mi>x</mi> <mo>&prime;</mo> </msubsup> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msub> <mi>I</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>L</mi> <mi>x</mi> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msub> <mi>k</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>I</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>I</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <munder> <mi>&Sigma;</mi> <mrow> <mi>&zeta;</mi> <mo>&Element;</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>c</mi> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <msub> <mi>J</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <mfrac> <mrow> <msub> <mi>L</mi> <mi>x</mi> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>I</mi> <mi>t</mi> </msub> </mrow> <mrow> <msub> <mi>k</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>I</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>I</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <munder> <mi>&Sigma;</mi> <mrow> <mi>&zeta;</mi> <mo>&Element;</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>c</mi> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <msub> <mi>J</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>18</mn> <mo>)</mo> </mrow> </mrow> <mrow> <msub> <mi>k</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <mrow> <mi>p</mi> <mo>&Element;</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>c</mi> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <msub> <mi>W</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>19</mn> <mo>)</mo> </mrow> </mrow> <mrow> <msub> <mi>k</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <mrow> <mi>p</mi> <mo>&Element;</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>c</mi> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <msub> <mi>W</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>20</mn> <mo>)</mo> </mrow> </mrow>其中,c为一高斯函数,N(p)表示以像素p为中心的n×n大小的区域,其中n≥3且n为正整数;ζ表示N(p)区域内的每一个像素;经过第4步的操作,即可获得经平滑后的水平方向梯度图像L′x(p);第5步:获得经平滑后的垂直方向梯度图像L′y(p);具体为:步骤①:找出第3步得到的垂直方向梯度图像Ly(p)中的最大像素值I′max和最小像素值I′min,把从I′min到I′max的区间等分为m′个亮度等级,分别记为I′0、I′1、......、I′m′ 1;其中,m′≥4且m′为正整数;步骤②:依次对于第k′个亮度等级,利用第3步得到的垂直方向梯度图像Ly(p),分别根据公式21和公式22得到图像W′k′(p)和图像J′k′(p);k′=1,2,......,m′且k′为正整数;W′k′(p)=s(Ly(p) I′k′) (21)J′k(p)=W′k′(p)·Ly(p) (22)步骤③:对第3步得到的垂直方向梯度图像Ly(p)进行平滑处理,得到平滑后的垂直方向梯度图像L′y(p);具体为:如果Ly(p)∈[I′t′,I′t′+1],其中1≤t′≤m′ 2且t′为正整数;则: <mrow> <msubsup> <mi>L</mi> <mi>y</mi> <mo>&prime;</mo> </msubsup> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msub> <msup> <mi>I</mi> <mo>&prime;</mo> </msup> <mrow> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>L</mi> <mi>y</mi> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msub> <msup> <mi>k</mi> <mo>&prime;</mo> </msup> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <msup> <mi>I</mi> <mo>&prime;</mo> </msup> <mrow> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <msup> <mi>I</mi> <mo>&prime;</mo> </msup> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <munder> <mi>&Sigma;</mi> <mrow> <mi>&zeta;</mi> <mo>&Element;</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>c</mi> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <msub> <msup> <mi>J</mi> <mo>&prime;</mo> </msup> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> </msub> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <mfrac> <mrow> <msub> <msup> <mi>L</mi> <mo>&prime;</mo> </msup> <msup> <mi>x</mi> <mo>&prime;</mo> </msup> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <msup> <mi>I</mi> <mo>&prime;</mo> </msup> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> </msub> </mrow> <mrow> <msub> <msup> <mi>k</mi> <mo>&prime;</mo> </msup> <mrow> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <msup> <mi>I</mi> <mo>&prime;</mo> </msup> <mrow> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <msup> <mi>I</mi> <mo>&prime;</mo> </msup> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <munder> <mi>&Sigma;</mi> <mrow> <mi>&zeta;</mi> <mo>&Element;</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>c</mi> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <msub> <mi>J</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>23</mn> <mo>)</mo> </mrow> </mrow> <mrow> <msub> <msup> <mi>k</mi> <mo>&prime;</mo> </msup> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <mrow> <mi>p</mi> <mo>&Element;</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>c</mi> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <msub> <msup> <mi>W</mi> <mo>&prime;</mo> </msup> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>24</mn> <mo>)</mo> </mrow> </mrow> <mrow> <msub> <msup> <mi>k</mi> <mo>&prime;</mo> </msup> <mrow> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <mrow> <mi>p</mi> <mo>&Element;</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>c</mi> <mrow> <mo>(</mo> <mi>&zeta;</mi> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <msub> <msup> <mi>W</mi> <mo>&prime;</mo> </msup> <mrow> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>25</mn> <mo>)</mo> </mrow> </mrow>经过第5步的操作,即可获得经平滑后的垂直方向梯度图像L′y(p);第6步:对于每一个像素p及其周围n×n大小区域内的每一个像素ζ,计算局部细节值LΔ(p,ζ);第7步:获得每一个像素p经三边滤波的结果Lout(p),Lout(p)即为L(p)的基本层图像;第8步:获得L(p)的细节层图像Ldetail(p);第9步:获得经动态范围压缩后的基本层图像Lbase(p);第10步:合成经动态范围压缩后的对数域亮度图像Lmapped(p);第11步:从Lmapped(p)还原出彩色图像的三个颜色通道值;第12步:将第11步中的颜色通道值平移并缩放至0到255的区间,并四舍五入取整,再合并成一幅新的图像,即为输入的高动态范围图像经色调映射后的结果。
地址 100081 北京市海淀区中关村南大街5号
您可能感兴趣的专利