接觸式圖像傳感器的信號(hào)讀取與補(bǔ)償技術(shù)
接觸式圖像傳感器的信號(hào)讀取與補(bǔ)償技術(shù)
圖像傳感器是利用光電轉(zhuǎn)換原理將圖像數(shù)據(jù)轉(zhuǎn)換為一系列電子信號(hào)的一種裝置。接觸式圖像傳感器CIS是80年代末出現(xiàn)的一種新型圖像傳感器,是以CMOS技術(shù)為主的一種光電掃描器件。CIS相比于CCD具有體積小、速度快、成本低、安裝調(diào)試簡(jiǎn)單等優(yōu)點(diǎn)。但無(wú)論是CIS還是CCD都要考慮干擾信號(hào)、傳感器偏差等因素對(duì)圖像信號(hào)的影響,只有排除了這些影響,才能真實(shí)地再現(xiàn)圖像信息。
明輸出與暗輸出
明輸出VP是指當(dāng)CIS讀取白樣張時(shí),光電傳感器輸出的電信號(hào)值。
明偏差UP是指像素陣列中,所有像素點(diǎn)的明輸出的偏差值。
UP=(Vpmax-Vpmin)/Vp
暗輸出Vd是指當(dāng)CIS讀取黑樣張時(shí),光電傳感器輸出的電信號(hào)值。
暗偏差Ud是指像素陣列中,所有像素點(diǎn)的暗輸出的偏差值。
Ud=Vdmax-Vdmin
圖像的取樣與量化
1、圖像的取樣
所謂取樣就是用一個(gè)有限的數(shù)列、數(shù)陣來(lái)表示一幅連續(xù)圖像。取樣要遵循取樣定理:對(duì)于一個(gè)函數(shù)fc(x,y),若其傅里葉變換FC(u,v)在空間領(lǐng)域的一個(gè)有限區(qū)域外(即|u|>uc或|v|>vc)處處為零,則當(dāng)取樣間隔△x≤1/2uc和△y≤1/2vc時(shí),fc(x,y)可由它的樣本值正確地重現(xiàn),否則圖像將產(chǎn)生畸變(即混疊效應(yīng))。把取樣的最大間隔△x=1/2uc和△y=1/2vc稱為奈奎斯特間隔,1/△x和1/△y稱為奈奎斯特頻率。
2、圖像的量化
圖像取樣后,正比于圖像灰度值的光電傳感器輸出的電子信號(hào)是模擬量,所以,必須把它變成數(shù)字信號(hào),才能輸入計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理。這種把圖像信息實(shí)際輸出的模擬量變換成離散的數(shù)字量的轉(zhuǎn)換過(guò)程叫做量化。
采用均勻量化技術(shù)就是將Vp與Vd的差值Vp-Vd等間隔地取K個(gè)等級(jí),通常量化等級(jí)K=2m,如果選用8位A/D轉(zhuǎn)換器,則m=8,K=256級(jí)。
實(shí)際輸出介于Ri與Vi之間的,取量化值Vi,介于Ri與Vi+1之間的取Vi+1。
下面通過(guò)均方誤差技術(shù),計(jì)算當(dāng)量化誤差最小時(shí)的量化判決電平值。
假設(shè):f代表圖像信息實(shí)際輸出值,Φ(f)代表圖像信息實(shí)際輸出值在Vp與Vd之間的密度函數(shù)。則,對(duì)于K個(gè)量化級(jí)而言,量化均方誤差為:
若Φ(f)=p=常數(shù),即圖像信息實(shí)際輸出值在Vp與Vd之間出現(xiàn)的概率處處相等,于是得到:
輸出電平的最佳取法應(yīng)滿足量化均方誤差最小,即
dε/dRi=0
由上面兩式可以得出:
Ri=(Vi+Vi+1)/2
即當(dāng)Ri=(Vi+Vi+1)/2時(shí),可以保證量化誤差最小。
補(bǔ)償技術(shù)
所謂補(bǔ)償就是對(duì)CIS上的一列光電傳感器之間輸出值的偏差進(jìn)行修正,使之能正確地反映圖像信息。理論上說(shuō),這一列光電傳感器對(duì)CIS輸出的信號(hào)取樣、量化后,要對(duì)它的明輸出、暗輸出進(jìn)行補(bǔ)償。
圖1是表示CIS的實(shí)際輸出值的狀態(tài)圖(補(bǔ)償前),首先把所有點(diǎn)中,最大的明輸出值定義為Vpmax,最小的暗輸出值定義為Vdmin。從圖1中可以看出,每一點(diǎn)的明輸出Vpi、暗輸出Vdi與Vpmax、Vdmin之間都有一個(gè)偏差值ΔVp、ΔVd,所謂補(bǔ)償就是要消除每一點(diǎn)的偏差值對(duì)畫(huà)質(zhì)的影響。
補(bǔ)償前,首先逐點(diǎn)測(cè)量CIS的明輸出Vpi與暗輸出Vdi,存入存儲(chǔ)器。然后計(jì)算各點(diǎn)的補(bǔ)償系數(shù)αi,并存入存儲(chǔ)器,圖2大體表達(dá)了明輸出與補(bǔ)償系數(shù)的分布,黑影部分就是當(dāng)以為Vpmax目標(biāo)時(shí),每點(diǎn)需要補(bǔ)償?shù)闹怠?br />
αi =(Vpmax—Vdmin)/(Vpi—Vdi)
接下來(lái)介紹補(bǔ)償系數(shù)αi的應(yīng)用方法。
掃描圖像時(shí),首先用A/D轉(zhuǎn)換器對(duì)圖像信息進(jìn)行采樣、量化,并取得各點(diǎn)的實(shí)際輸出值Vi,然后利用下面的公式求得補(bǔ)償后的數(shù)值Wi。
Wi=αi×(Vi—Vdi)
圖3中,白影部分表示的是實(shí)際輸出值Vi,黑影部分表示的是補(bǔ)償后的輸出值Wi,它們的關(guān)系就如同上面介紹的補(bǔ)償公式的關(guān)系。通過(guò)Wi就可以得到真實(shí)的圖像信息。
用軟件實(shí)現(xiàn)
用C語(yǔ)言來(lái)實(shí)現(xiàn)計(jì)算過(guò)程。
設(shè)明輸出Vpi的文件名為MOUT
設(shè)暗輸出Vdi的文件名為AOUT
設(shè)采樣值Vi的文件名為CAI
計(jì)算后αi的輸出文件名為ALFA
計(jì)算后Wi的輸出文件名為WIV
#include <stdio.h>
main()
{ FILE *mfp, *afp, *cfp, *mbfp, *abfp,*af, *wi;
FLOAT A,B,C,D,W,MAX,MIN;
mfp=fopen(“MOUT”,“rb”);
mbfp=mfp;
afp=fopen(“AOUT”,“rb”);
abfp=afp;
cfp=fopen(“CAI”,“rb”);
MAX=0.0;
MIN=0.0;
While(!feof(mfp))
{ scanf(mfp,“%f”,&A);
scanf(afp,“%f”,&B);
if (A>MAX) then MAX=A;
if (B<MIN) then MIN=B;};
mfp=mbfp;
afp=abfp;
af=fopen(“ALFA”,“wb”);
wi=fopen(“WIV”,“wb”);
while(!feof(mfp))
{ scanf(mfp,“%f”,&A);
scanf(afp,“%f”,&B);
scanf(cfp,“%f”,&C);
D=(MAX-MIN)/(A-B);
W=D*(C-B);
fprintf(af,“%f”,D);
fprintf(wi,“%f”,W);
}
fclose(mfp);fclose(afp);fclose(cfp);fclose(af);fclose(wi);
}