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