專利名稱:色彩校正中適合多種光線的顏色矩陣的實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理領(lǐng)域,尤其涉及,圖像復(fù)原技術(shù)中用于攝像裝置的色彩校正方法,該方法中包含有顏色矩陣(color matrix)。
背景技術(shù):
圖像復(fù)原是圖像處理的一個重要部分,它的主要目的是改善給定的圖像質(zhì)量,當(dāng)給定了一副退化的或者受到噪聲污染了的圖像后,利用退化現(xiàn)象的某種先驗知識來重建或恢復(fù)原有圖像是圖像復(fù)原處理的主要過程。在現(xiàn)有技術(shù)中,用攝像器材拍攝下來的影象的色彩往往不正,即,從光學(xué)傳感器中出來的圖像顏色有相當(dāng)?shù)纳?,需要通過一定的方法來校正。通常用的校正辦法是拍攝一張如附圖1所示的顏色校驗片(color checker)一標(biāo)準(zhǔn)色板的圖片,計算出所拍攝圖像中每一塊色塊的平均值,與標(biāo)準(zhǔn)色板中相應(yīng)色塊的標(biāo)準(zhǔn)值做比較,計算出顏色矩陣(color matrix);然后在每一幀的圖像輸出前做如下式的計算,即可達到色彩校正的目的。
RGB=color matrix*rgb]]>其中,R、G、B為標(biāo)準(zhǔn)色板中的標(biāo)準(zhǔn)值,r、g、b為拍攝下來圖像對應(yīng)的值。
從這里可知,顏色矩陣(color matrix)的良好實現(xiàn)是顏色校正中的關(guān)鍵,現(xiàn)有方法一般是用最小二乘法直接計算出顏色矩陣,如下求colormatrix|a11a12a13||a21a22a23||a31a32a33|]]>使得下式中三個值最小(R-a11*r-a12*g-a13*b)^2,(G-a21*r-a22*g-a23*b)^2,(B-a31*r-a32*g-a33*b)^2。
但使用這種方法計算出的顏色矩陣進行顏色校正的效果并不好,在有的時候還可能會加重圖像的噪聲的現(xiàn)象,而且攝像器材通常需要在各種環(huán)境,各種光線下拍攝,例如,目光(daylight),冷白色(coolwhite)等,在白天自然光下效果好,在晚上燈光下效果可能就不好,為了在各種光線下都能達到色彩矯正的目的,我們需要適合多種光線下矯正色彩的color matrix。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種用于攝像裝置的色彩校正中適合多種光線的顏色矩陣的實現(xiàn)方法,使得可以在不同的光線下都能使顏色校正更理想和趨于準(zhǔn)確。
為達到上述目的,本發(fā)明的技術(shù)方案具體是這樣實現(xiàn)的一種適合多種光線的顏色矩陣的實現(xiàn)方法,用在通過下式來實現(xiàn)的色彩校正中RGB=color matrix*rgb]]>其中,RGB為標(biāo)準(zhǔn)色板中的標(biāo)準(zhǔn)值,rgb為所拍攝圖像對應(yīng)的值;
顏色矩陣(color matrix)如下式所表示|a11a12a13||a21a22a23||a31a32a33|]]>包括使得(R-a11*r-a12*g-a13*b)^2,(G-a21*r-a22*g-a23*b)^2,以及(B-a31*r-a32*g-a33*b)^2三個值最小的步驟,其特點在于,還包括步驟一、使得顏色矩陣適合多種光線的手段;步驟二、使得a11+a12+a13=1,a21+a22+a23=1,a31+a32+a33=1的手段;步驟三、使得a11,a22,a33盡量接近1的手段;以及步驟四、使得a12,a13,a21,a23,a31,a32盡量的接近0的手段。
進一步地,色板中每一塊的權(quán)重可被設(shè)置;進一步地,步驟一是通過如下手段實現(xiàn)的r1g1b1,r2g2b2,...rngnbn為分別在n種光線下所拍攝圖像對應(yīng)的值,使得(R-a11*r1-a12*g1-a13*b1)^2+(R-a11*r2-a12*g2-a13*b2)^2+(R-a11*r3-a12*g3-a13*b3)^2,(G-a21*r1-a22*g1-a23*b1)^2+(G-a21*r2-a22*g2-a23*b2)^2+(G-a21*r3-a22*g3-a23*b3)^2,和(B-a31*r1-a32*g1-a33*b1)^2+(B-a31*r2-a32*g2-a33*b2)^2+(B-a31*r3-a32*g3-a33*b3)^2的值最小。
進一步地,使得(R-a11*r-a12*g-a13*b)^2,(G-a21*r-a22*g-a23*b)^2,以及(B-a31*r-a32*g-a33*b)^2三個值最小的步驟,是通過分別對a11,a22,a33求導(dǎo)并令導(dǎo)數(shù)等于0來實現(xiàn);
進一步地,使得(R-a11*r-a12*g-a13*b)^2,(G-a21*r-a22*g-a23*b)^2,以及(B-a31*r-a32*g-a33*b)^2三個值最小的步驟,是通過分別對a11,a22,a33求導(dǎo)并令導(dǎo)數(shù)等于預(yù)先給的固定值來實現(xiàn);進一步地,所述固定值的取值范圍為[-180000,180000];進一步地,步驟三是通過去掉不滿足下列條件的顏色矩陣值來實現(xiàn)的0.5<=a11<=1.5,0.5<=a22<=1.5,0.5<=a33<=1.5;進一步地,步驟四是通過去掉不滿足下列條件的顏色矩陣值來實現(xiàn)的-0.5<=a12<=0.5,-0.5<=a23<=0.5,-0.5<=a31<=0.5。
對比現(xiàn)有技術(shù),本發(fā)明為了去取現(xiàn)有技術(shù)中顏色校正的缺點,在現(xiàn)有方法的基礎(chǔ)上增加了對顏色矩陣的值進行約束的步驟,使得校正效果更加理想,并且可以適應(yīng)不同的光線環(huán)境。
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明進一步詳細(xì)說明。
圖1為顏色校驗片(color checker)示意圖。
具體實施例方式
按照發(fā)明內(nèi)容所述本專利的實現(xiàn)思想,下面通過具體的實施例來描述實現(xiàn)的過程和示范。在不同的光線下分別拍攝一張如下圖所示的color checker的圖片,計算出每一塊色塊的平均值,與標(biāo)準(zhǔn)值做比較,計算出color matrix。
RGB=color matrix*rgb]]>
設(shè)RGB為標(biāo)準(zhǔn)的色塊值,r1g1b1,r2g2b2,r3g3b3為分別在3種光線下拍攝下來的值。
求colormatrix:|a11a12a13||a21a22a23||a31a32a33|]]>使得下式中三個值最小(R-a11*r1-a12*g1-a13*b1)^2+(R-a11*r2-a12*g2-a13*b2)^2+(R-a11*r3-a12*g3-a13*b3)^2,(G-a21*r1-a22*g1-a23*b1)^2+(G-a21*r2-a22*g2-a23*b2)^2+(G-a21*r3-a22*g3-a23*b3)^2,(B-a31*r1-a32*g1-a33*b1)^2+(B-a31*r2-a32*g2-a33*b2)^2+(B-a31*r3-a32*g3-a33*b3)^2---1并且為了達到好的實際效果,對color matrix中的值的范圍做了約束。
要求條件1、a11+a12+a13=1a21+a22+a23=1a31+a32+a33=1條件2、a11,a22,a33盡量的接近1;條件3、a12,a13,a21,a23,a31,a32盡量的接近0;條件4、要可設(shè)置色板中每一塊的權(quán)重,此處用Lambda[24]表示;條件5、要求適合多種光線下。
要求上式1中的最小值,即分別對a11,a22,a33求導(dǎo),令導(dǎo)數(shù)等于0,即為最小值。
求導(dǎo)得
r1*R-a11*r1*r1-a12*r1*g1-a13*r1*b1+r2*R-a11*r2*r2-a12*r2*g2-a13*r2*b2+r3*R-a11*r3*r3-a12*r3*g3-a13*r3*b3=0g1*G-a21*g1*r1-a22*g1*g1-a23*g1*b1+g2*G-a21*g2*r2-a22*g2*g2-a23*g2*b2+g3*G-a21*g3*r3-a22*g3*g3-a23*g3*b3=0b1*B-a31*b1*r1-a32*b1*g1-a33*b1*b1+b2*B-a31*b2*r2-a32*b2*g2-a33*b2*b2+b3*B-a31*b3*r3-a32*b3*g3-a33*b3*b3=0 ------2此為一個色塊的情況,如圖1所示,我們拍攝的共有24塊,再加上權(quán)重的影響,對整個圖而言,我們需要計算的等式為∑(Lambda[i]*(r1i*Ri))-a11*∑(Lambda[i]*(r1i*r1i))-a12*∑(Lambda[i]*(r1i*g1i))-a13*∑(Lambda[i]*(r1i*b1i))+∑(Lambda[i]*(r2i*Ri))-a11*∑(Lambda[i]*(r2i*r2i))-a12*∑(Lambda[i]*(r2i*g2i))-a13*∑(Lambda[i]*(r2i*b2i))+∑(Lambda[i]*(r3i*Ri))-a11*∑(Lambda[i]*(r3i*r3i))-a12*∑(Lambda[i]*(r3i*g3i))-a13*∑(Lambda[i]*(r3i*b3i))=0∑(Lambda[i]*(g1i*Gi))-a21*∑(Lambda[i]*(g1i*r1i))-a22*∑(Lambda[i]*(g1i*g1i))-a23*∑(Lambda[i]*(g1i*b1i))+∑(Lambda[i]*(g2i*Gi))-a21*∑(Lambda[i]*(g2i*r2i))-a22*∑(Lambda[i]*(g2i*g2i))-a23*∑(Lambda[i]*(g2i*b2i))+∑(Lambda[i]*(g3i*Gi))-a21*∑(Lambda[i]*(g3i*r3i))-a22*∑(Lambda[i]*(g3i*g3i))-a23*∑(Lambda[i]*(g3i*b3i))=0
∑(Lambda[i]*(b1i*Bi))-a31*∑(Lambda[i]*(b1i*r1i))-a32*∑(Lambda[i]*(b1i*g1i))-a33*∑(Lambda[i]*(b1i*b1i))+∑(Lambda[i]*(b2i*Bi))-a31*∑(Lambda[i]*(b2i*r2i))-a32*∑(Lambda[i]*(b2i*g2i))-a33*∑(Lambda[i]*(b2i*b2i))+∑(Lambda[i]*(b3i*Bi))-a31*∑(Lambda[i]*(b3i*r3i))-a32*∑(Lambda[i]*(b3i*g3i))-a33*∑(Lambda[i]*(b3i*b3i))=0 ---3其中i=1,...24。
由于導(dǎo)數(shù)的意義在于曲線在這一點的斜率,為了能同時滿足所要求的前3個條件,所以1式的值并不一定是最小,可以有一定的誤差,因為使1式最小的color matrix不一定滿足這3個條件,即2式的值不一定是0,設(shè)為e。
所以3式可以寫為∑(Lambda[i]*(r1i*Ri))-a11*∑(Lambda[i]*(r1i*r1i))-a12*∑(Lambda[i]*(r1i*g1i))-a13*∑(Lambda[i]*(r1i*b1i))+∑(Lambda[i]*(r2i*Ri))-a11*∑(Lambda[i]*(r2i*r2i))-a12*∑(Lambda[i]*(r2i*g2i))-a13*∑(Lambda[i]*(r2i*b2i))+∑(Lambda[i]*(r3i*Ri))-a11*∑(Lambda[i]*(r3i*r3i))-a12*∑(Lambda[i]*(r3i*g3i))-a13*∑(Lambda[i]*(r3i*b3i))=e∑(Lambda[i]*(g1i*Gi))-a21*∑(Lambda[i]*(g1i*r1i))-a22*∑(Lambda[i]*(g1i*g1i))-a23*∑(Lambda[i]*(g1i*b1i))+∑(Lambda[i]*(g2i*Gi))-a21*∑(Lambda[i]*(g2i*r2i))-a22*∑(Lambda[i]*(g2i*g2i))-a23*∑(Lambda[i]*(g2i*b2i))+∑(Lambda[i]*(g3i*Gi))-a21*∑(Lambda[i]*(g3i*r3i))-a22*∑(Lambda[i]*(g3i*g3i))-a23*∑(Lambda[i]*(g3i*b3i))=e
∑(Lambda[i]*(b1i*Bi))-a31*∑(Lambda[i]*(b1i*r1i))-a32*∑(Lambda[i]*(b1i*g1i))-a33*∑(Lambda[i]*(b1i*b1i))+∑(Lambda[i]*(b2i*Bi))-a31*∑(Lambda[i]*(b2i*r2i))-a32*∑(Lambda[i]*(b2i*g2i))-a33*∑(Lambda[i]*(b2i*b2i))+∑(Lambda[i]*(b3i*Bi))-a31*∑(Lambda[i]*(b3i*r3i))-a32*∑(Lambda[i]*(b3i*g3i))-a33*∑(Lambda[i]*(b3i*b3i))=e ---4其中i=1,...24。
再把條件1代入4式,得a12=(∑(Lambda[i]*(r1i*(r1i-Ri)))+∑(Lambda[i]*(r2i*(r2i-Ri)))+∑(Lambda[i]*(r3i*(r3i-Ri)))-a13*(∑(Lambda[i]*(r1i*(r1i-b1i)))+∑(Lambda[i]*(r2i*(r2i-b2i)))+∑(Lambda[i]*(r3i*(r3i-b3i))))-e)/(∑(Lambda[i]*(r1i*(r1i-g1i)))+∑(Lambda[i]*(r2i*(r2i-g2i)))+∑(Lambda[i]*(r3i*(r3i-g3i))))a23=(∑(Lambda[i]*(g1i*(g1i-Gi)))+∑(Lambda[i]*(g2i*(g2i-Gi)))+∑(Lambda[i]*(g3i*(g3i-Gi)))-a21*(∑(Lambda[i]*(g1i*(g1i-r1i)))+∑(Lambda[i]*(g2i*(g2i-r2i)))+∑(Lambda[i]*(g3i*(g3i-r3i))))-e)/(∑(Lambda[i]*(g1i*(g1i-b1i)))+∑(Lambda[i]*(g2i*(g2i-b2i)))+∑(Lambda[i]*(g3i*(g3i-b3i))))a31=(∑(Lambda[i]*(b1i*(b1i-Bi)))+∑(Lambda[i]*(b2i*(b2i-Bi)))+∑(Lambda[i]*(b3i*(b3i-Bi)))-a32*(∑(Lambda[i]*(b1i*(b1i-g1i)))+∑
(Lambda[i]*(b2i*(b2i-g2i)))+∑(Lambda[i]*(b3i*(b3i-g3i))))-e)/(∑(Lambda[i]*(b1i*(bli-r1i)))+∑(Lambda[i]*(b2i*(b2i-r2i)))+∑(Lambda[i]*(b3i*(b3i-r3i))))分別令e=-180000至180000,間隔10000取值,共37個值。
a13=-0.5至0.5,間隔0.01,共101個值。
a21=-0.5至0.5,間隔0.01,共101個值。
a32=-0.5至0.5,間隔0.01,共101個值。
求出a12,a23,a31。
再根據(jù)條件1計算出a11,a22,a33。
至此,共得到37*101=3737組color matrix。
再去掉其中不滿足條件2和條件3的color matrix,即去掉不滿足條件0.5<=a11<=1.5,0.5<=a22<=1.5,0.5<=a33<=1.5,-0.5<=a12<=0.5,-0.5<=a23<=0.5,-0.5<=a31<=0.5,的顏色矩陣。
把剩下的N(N<=3737)組color matrixA,先取每一組的第一行A[1],做如下計算diff=Expected-R′-A[1]*Acquired1′+Expected_R′-A[1]*Acauired2′+Expected_R′-A[1]*Acquired3′; ---5其中Acquired1=|r11,g11,b11||r12,g12,b12||...,...,...,||r124,g124,b124|]]>|r21,g21,b21|Acquired2=|r22,g22,b22|]]>
|...,...,...,||r224,g224,b224|]]>Acquired3=|r31,g31,b31||r32,g32,b32||...,...,...,||r324,g324,b324|]]>Expected_R=|R1||R2||...||R24|]]>得出N組diff,其中diff為1行24列的矩陣。
再把diff中的每一個數(shù)乘上對應(yīng)的權(quán)重后,取平方做和,如下diff_sum=0;for(k=0;k<24;k++){d=diff[k]*Lambda[k];diff_sum+=d*d;}對這N組diff分別進行如上計算,就得出N個diff_sum。其中diff_sum是一個實數(shù)。找出這N個diff_sum的最小值,設(shè)第M1個diff_sum為這N個diff_sum的最小值,則第M1組的color matrixA的第一行A[1]即為我們要求的顏色矩陣的第一行。
同理計算第二行把剩下的N(N<=3737)組color matrixA,先取每一組的第二行A[2],做如下計算diff=Expected_G′-A[2]*Acquired1′+Expected_G′-A[2]*Acquired2′+Expected_G′-A[2]*Acquired3′; ---6其中Acquired1=|r11,g11,b11||r12,g12,b12||...,...,...,||r124,g124,b124|]]>Acquired2=|r21,g21,b21||r22,g22,b22||...,...,...,||r224,g224,b224|]]>Acquired3=|r31,g31,b31||r32,g32,b32||...,...,...,||r324,g324,b324|]]>Expected_G=|G1||G2||...||G24|]]>得出N組diff,其中diff為1行24列的矩陣。再把diff中的每一個數(shù)乘上對應(yīng)的權(quán)重后,取平方做和,如下diff_sum=0;for(k=0;k<24;k++){d=diff[k]*Lambda[k];diff_sum+=d*d;}對這N組diff分別進行如上計算,就得出N個diff_sum。其中diff_sum是一個實數(shù)。找出這N個diff_sum的最小值,設(shè)第M2個diff_sum為這N個diff_sum的最小值,則第M2組的color matrixA的第二行A[2]即為我們要求的color matrix的第二行。
同理計算第三行把剩下的N(N<=3737)組color matrixA,先取每一組的第三行A[3],做如下計算diff=Expected_B′-A[3]*Acquired1′+Expected_B′-A[3]*Acquired2′+Expected_B′-A[3]*Acquired3′; ---7其中Acquired1=|r11,g11,b11||r12,g12,b12||...,...,...,||r124,g124,b124|]]>Acquired2=|r21,g21,b21||r22,g22,b22||...,...,...,||r224,g224,b224|]]>
Acquired3=|r31,g31,b31||r32,g32,b32||...,...,...,||r324,g324,b324|]]>Expected_B=|B1||B2||...||B24|]]>得出N組diff,其中diff為1行24列的矩陣。再把diff中的每一個數(shù)乘上對應(yīng)的權(quán)重后,取平方做和,如下diff_sum=0;for(k=0;k<24;k++){d=diff[k]*Lambda[k];diff_sum+=d*d;}對這N組diff分別進行如上計算,就得出N個diff_sum。其中diff_sum是一個實數(shù)。找出這N個diff_sum的最小值,設(shè)第M3個diff_sum為這N個diff_sum的最小值,則第M3組的color matrixA的第三行A[3]即為我們要求的color matrix的第三行。
至此,我們計算出了一個完整的矩陣,即為我們需要的colormatrix。
本發(fā)明所述方法可被用于諸如攝像頭、數(shù)碼相機、可拍照的手機等數(shù)字?jǐn)z像裝置或系統(tǒng)中,應(yīng)當(dāng)指出,以上所述僅是本發(fā)明的優(yōu)選實施方式,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和變化,這些改進和變化也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種適合多種光線的顏色矩陣的實現(xiàn)方法,用在通過下式來實現(xiàn)的色彩校正中R rG=color matrix * gB b其中,RGB為標(biāo)準(zhǔn)色板中的標(biāo)準(zhǔn)值,rgb為所拍攝圖像對應(yīng)的值;顏色矩陣(color matrix)如下式所表示|a11 a12 a13||a21 a22 a23||a31 a32 a33|包括使得(R-a11*r-a12*g-a13*b)^2,(G-a21*r-a22*g-a23*b)^2,以及(B-a31*r-a32*g-a33*b)^2三個值最小的步驟,其特點在于,還包括步驟一、使得顏色矩陣適合多種光線的手段;步驟二、使得a11+a12+a13=1,a21+a22+a23=1,a31+a32+a33=1的手段;步驟三、使得a11,a22,a33盡量接近1的手段;以及步驟四、使得a12,a13,a21,a23,a31,a32盡量的接近0的手段。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,色板中每一塊的權(quán)重可被設(shè)置。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟一是通過如下手段實現(xiàn)的r1g1b1,r2g2b2,...rngnbn為分別在n種光線下所拍攝圖像對應(yīng)的值,使得(R-a11*r1-a12*g1-a13*b1)^2+(R-a11*r2-a12*g2-a13*b2)^2+(R-a11*r3-a12*g3-a13*b3)^2,(G-a21*r1-a22*g1-a23*b1)^2+(G-a21*r2-a22*g2-a23*b2)^2+(G-a21*r3-a22*g3-a23*b3)^2,和(B-a31*r1-a32*g1-a33*b1)^2+(B-a31*r2-a32*g2-a33*b2)^2+(B-a31*r3-a32*g3-a33*b3)^2的值最小。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,使得所述三個值最小的步驟,是通過分別對a11,a22,a33求導(dǎo)并令導(dǎo)數(shù)等于0來實現(xiàn)的。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,使得所述三個值最小的步驟,是通過分別對a11,a22,a33求導(dǎo)并令導(dǎo)數(shù)等于預(yù)先給的固定值來實現(xiàn)的。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述固定值的取值范圍為[-180000,180000]
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟三是通過去掉不滿足下列條件的顏色矩陣值來實現(xiàn)的0.5<=a11<=1.5,0.5<=a22<=1.5,0.5<=a33<=1.5。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟四是通過去掉不滿足下列條件的顏色矩陣值來實現(xiàn)的-0.5<=a12<=0.5,-0.5<=a23<=0.5,-0.5<=a31<=0.5。
全文摘要
本發(fā)明公開了一種適合多種光線的顏色矩陣的實現(xiàn)方法,本發(fā)明為了去取現(xiàn)有技術(shù)中顏色校正的缺點,在現(xiàn)有方法的基礎(chǔ)上增加了對顏色矩陣的值進行約束的步驟,使得校正效果更加理想,達到好的實際效果。
文檔編號H04N1/60GK1758706SQ200510115788
公開日2006年4月12日 申請日期2005年11月11日 優(yōu)先權(quán)日2005年11月11日
發(fā)明者盧虹, 王浩, 張奇 申請人:北京中星微電子有限公司