主权项 |
一种基于多尺度DoG滤波器的高动态范围的压缩方法,其特征在于,包括以下步骤:步骤1,从高动态范围图像各像素的sRGB空间值转换到XYZ空间值,图像XYZ空间中各像素(x,y)的值记为X(x,y),Y(x,y),Z(x,y);步骤2,利用M矩阵从XYZ空间值转换到人眼视锥细胞响应空间RGB值IR(x,y),IG(x,y),IB(x,y),转换公式如下, <mrow> <mfenced open='(' close=')'> <mtable> <mtr> <mtd> <msub> <mi>I</mi> <mi>R</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <msub> <mi>I</mi> <mi>G</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <msub> <mi>I</mi> <mi>B</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <mi>M</mi> <mfenced open='(' close=')'> <mtable> <mtr> <mtd> <mi>X</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mi>Y</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mi>Z</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>其中矩阵 <mi>M</mi> <mrow> <mo>=</mo> <mfenced open='(' close=')'> <mtable> <mtr> <mtd> <mn>0.7982</mn> </mtd> <mtd> <mn>0.3389</mn> </mtd> <mtd> <mn>20.1371</mn> </mtd> </mtr> <mtr> <mtd> <mn>20.5918</mn> </mtd> <mtd> <mn>1.5512</mn> </mtd> <mtd> <mn>0.0406</mn> </mtd> </mtr> <mtr> <mtd> <mn>0.0008</mn> </mtd> <mtd> <mn>0.0239</mn> </mtd> <mtd> <mn>0.9753</mn> </mtd> </mtr> </mtable> </mfenced> <mo>;</mo> </mrow>步骤3,利用色度适应性模型根据各像素周围的亮度情况调整复制前后光源光谱分布不同导致的颜色偏差,所述色度适应性模型如下,IRa(x,y)=IR(x,y)·(D(x,y)·(IRwr/IRw)+1‑D(x,y))IGa(x,y)=IG(x,y)·(D(x,y)·(IGwr/IGw)+1‑D(x,y))IBa(x,y)=IB(x,y)·(D(x,y)·(IBwr/IBw)+1‑D(x,y))其中,D(x,y)为高动态范围图像各像素在其适应性亮度Lw(x,y)下视锥细胞的适应程度,IRwr,IGwr,IBwr为高动态范围图像复制后显示环境的光源的视觉细胞响应值,IRw,IGw,IBw为高动态范围图像的光源的视觉细胞响应值;所述各像素适应性亮度Lw(x,y)利用多尺度的DoG滤波器计算;步骤4,建立高动态范围图像压缩显示前后的各像素在其适应性亮度下视锥细胞相对响应值的映射关系,具体如下:Rd_r(x,y)=Rr(x,y)其中,Rr(x,y)和Rd_r(x,y)分别为高动态范围图像各像素复制前后的视锥细胞的相对响应值;步骤5,计算显示设备上图像各像素视锥细胞响应值IdR(x,y),IdG(x,y),IdB(x,y);步骤6,根据以下公式进行偏色调整: <mrow> <msub> <mi>I</mi> <mrow> <mi>di</mi> <mo>_</mo> <mi>avg</mi> </mrow> </msub> <mo>=</mo> <munderover> <mi>Σ</mi> <mrow> <mi>x</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>I</mi> </munderover> <munderover> <mi>Σ</mi> <mrow> <mi>y</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>J</mi> </munderover> <msub> <mi>I</mi> <mi>di</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>/</mo> <mrow> <mo>(</mo> <mi>I</mi> <mo>·</mo> <mi>J</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mi>R</mi> <mo>,</mo> <mi>G</mi> <mo>,</mo> <mi>B</mi> </mrow>Gd_avg=(IdG_avg+IdR_avg+IdB_avg)/3I′di(x,y)=(Gd_avg/Idi_avg)Idi(x,y),i=R,G,B其中,I和J分别为图像的宽和高;Idi(x,y),i=R,G,B表示步骤5所得显示设备上图像各像素视锥细胞响应值IdR(x,y),IdG(x,y),IdB(x,y),Idi_avg为根据Idi(x,y)求取平均值,Gd_avg为根据Idi_avg求取的平均值,I′di(x,y)为偏色调整结果;步骤7,利用步骤2所述M矩阵的逆矩阵将各像素视锥细胞响应值转换到XYZ空间,再利用sRGB转换矩阵的逆矩阵转换到用于显示的RGB值。 |