徐子程, 郭貴新, 鄭喜鳳,2,3*, 周 洋
(1. 長(zhǎng)春希達(dá)電子技術(shù)有限公司,吉林 長(zhǎng)春 130103;2. 中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春 130033;3. 季華實(shí)驗(yàn)室,廣東 佛山 528200)
LED(Light Emitted Diode)顯示屏由于其尺寸靈活、亮度高、壽命長(zhǎng)、視角大等優(yōu)點(diǎn),在展會(huì)、商場(chǎng)、影院、地鐵、演播室、醫(yī)院等場(chǎng)所被廣泛地應(yīng)用[1-4]。但由于LED經(jīng)過長(zhǎng)期使用后發(fā)光元件和驅(qū)動(dòng)元件老化[5]、模塊和箱體存在安裝誤差等因素,會(huì)對(duì)亮色度均勻性造成影響[6],所以需要對(duì)顯示屏進(jìn)行校正處理[7]。而校正過程中圖像上燈點(diǎn)定位排序的精度將直接影響最終校正的效果。
傳統(tǒng)的亮色度檢測(cè)方法同一時(shí)間只能檢測(cè)一個(gè)點(diǎn),對(duì)于LED顯示器百萬(wàn)級(jí)像素點(diǎn)檢測(cè)來說效率低下[8]。而采用CCD(Charge Coupled Device)面陣檢測(cè)器單次測(cè)量的像素點(diǎn)數(shù)量很大,在相同時(shí)間內(nèi),檢測(cè)效率大幅提高[9]。LED顯示屏內(nèi)部的燈點(diǎn)分布存在一定的規(guī)律性,但是通過相機(jī)拍攝出來的圖像由于畸變、圖像傾斜等原因并不能保證圖像中燈點(diǎn)嚴(yán)格按照理想的棋盤格形狀分布。而且在LED顯示屏中會(huì)出現(xiàn)某些燈珠不能點(diǎn)亮,即死燈的情況,給燈點(diǎn)的定位造成極大的干擾。針對(duì)這種情況國(guó)內(nèi)外相關(guān)學(xué)者通過對(duì)二值圖像進(jìn)行水平和垂直投影,確定燈點(diǎn)位置[10-11]。
本文利用機(jī)器視覺檢測(cè)技術(shù)來測(cè)量LED顯示屏亮度[12-13],通過對(duì)圖像中所有燈點(diǎn)的4個(gè)角點(diǎn)進(jìn)行預(yù)定位、對(duì)4條邊界點(diǎn)按照直線方程歸類排序、對(duì)死燈位置自動(dòng)補(bǔ)點(diǎn)、反饋角點(diǎn)和邊界點(diǎn)死燈處的理論坐標(biāo)、對(duì)所有直線進(jìn)行歸類排序完成顯示屏所有燈點(diǎn)的定位排序。在提高了亮度采集效率的同時(shí),補(bǔ)充了死燈位置的坐標(biāo),為生成系數(shù)矩陣及亮色度校正提供了更精確的燈點(diǎn)坐標(biāo)。
LED亮度校正的前提是找到圖像上的燈點(diǎn)與顯示屏燈點(diǎn)之間位置的一一對(duì)應(yīng)關(guān)系,所以在校正前要確定圖像中各個(gè)燈點(diǎn)的中心坐標(biāo),然后將所有坐標(biāo)按照實(shí)際顯示屏的燈點(diǎn)排列順序進(jìn)行坐標(biāo)重排。
在確定燈點(diǎn)的具體位置之前,先要對(duì)采集到的圖像進(jìn)行灰度分布統(tǒng)計(jì),在所獲取的感光圖像中,由于燈點(diǎn)一般由矩陣的方式排列,且燈點(diǎn)區(qū)域與背景區(qū)域的灰度值存在明顯的差異,有時(shí)還會(huì)產(chǎn)生環(huán)繞光的現(xiàn)象[14]。因此需對(duì)圖像進(jìn)行二值化處理[15-16]。首先將拍攝圖像轉(zhuǎn)化為灰度圖像,在灰度圖像中的非圖像點(diǎn)區(qū)域提取部分像素灰度值的平均值。然后以二倍非圖像點(diǎn)區(qū)域灰度值的平均值為閾值,將灰度圖像中小于閾值的像素灰度值賦值為0,大于閾值的像素灰度值賦值為1。由于燈點(diǎn)位置像素灰度值較高,高于閾值的點(diǎn)分布密集且分布形狀趨近于圓形,所以將灰度值高于閾值且密度較高的區(qū)域取該區(qū)域的中心為燈點(diǎn)坐標(biāo),完成燈點(diǎn)中心坐標(biāo)的提取。
由于拍攝過程中存在圖像坐標(biāo)系與像素坐標(biāo)系的坐標(biāo)軸線不能保證平行的情況,在燈點(diǎn)較多、傾斜角度較大的情況下,會(huì)出現(xiàn)坐標(biāo)排序錯(cuò)誤。因此本文針對(duì)由圖像傾斜導(dǎo)致排序混亂的問題給出了一種LED燈點(diǎn)精準(zhǔn)排序的算法(本文僅校正由于相機(jī)和LED顯示屏沒有對(duì)準(zhǔn)導(dǎo)致圖像在一定范圍內(nèi)傾斜的情況,如果傾斜非常嚴(yán)重可能出現(xiàn)校正失敗,此時(shí)則需要調(diào)整相機(jī)重新獲取圖片)。
因?yàn)閳D像中所有燈點(diǎn)的坐標(biāo)由于鏡頭畸變、相機(jī)傾斜、定位誤差等因素并不是嚴(yán)格按照規(guī)律排列的,但總體排列形狀趨向于棋盤格點(diǎn)型分布,因此本文的定位排序算法總體思路為先確定4個(gè)角點(diǎn)坐標(biāo),再根據(jù)斜率分別將所有點(diǎn)歸類到各條直線上并排序。
在以圖像左上角為坐標(biāo)原點(diǎn)的像素坐標(biāo)系下,無(wú)論是鏡頭畸變、相機(jī)傾斜還是其他因素導(dǎo)致拍攝圖像的LED燈點(diǎn)不能嚴(yán)格按照規(guī)律排列,其拍攝所得圖像的左上角和右下角頂點(diǎn)分別為到坐標(biāo)原點(diǎn)的最近點(diǎn)和最遠(yuǎn)點(diǎn)(圖1(a),1(b))。但是經(jīng)過大量實(shí)驗(yàn)發(fā)現(xiàn),如果位于4個(gè)角點(diǎn)的LED燈珠出現(xiàn)死燈的情況,則無(wú)法完成角點(diǎn)定位。因此本文在定位排序的基礎(chǔ)上將死燈所在位置按照周圍點(diǎn)坐標(biāo)排列規(guī)律進(jìn)行了自動(dòng)補(bǔ)點(diǎn)。
首先設(shè)原點(diǎn)坐標(biāo)為O(0,0),坐標(biāo)軸橫向?yàn)閄軸,向右為正方向;縱向?yàn)閅軸,向下為正方向,計(jì)算所有點(diǎn)坐標(biāo)到坐標(biāo)原點(diǎn)之間的距離,并取極小值所在點(diǎn)設(shè)為XiYi,極大值所在點(diǎn)設(shè)為XaYa分別作為圖像左上角和右下角的定位點(diǎn)。然后找出所有點(diǎn)中最大的Y值設(shè)為Ymax,找出所有點(diǎn)中Y值小于Ymax-3l的點(diǎn)(l為兩個(gè)連續(xù)點(diǎn)之間的理想距離),如圖2(a)所示。將圖2(a)中框選的點(diǎn)按照X從小到大排列并選取框內(nèi)X值與最小X值的絕對(duì)值小于l/2的點(diǎn),篩選結(jié)果如圖2(b)所示。最后再?gòu)男】蛑羞x取Y值最大的點(diǎn)即為左下角頂點(diǎn),并將此點(diǎn)設(shè)為XiYa。
同理可證,找出所有點(diǎn)中最大的X值設(shè)為Xmax,并找出所有點(diǎn)中X值小于Xmax-3l的點(diǎn),如圖3(a)所示。將圖3(a)中框選的點(diǎn)按照Y從小到大排列并選取框內(nèi)Y值與最小Y值的絕對(duì)值小于l/2的點(diǎn),篩選結(jié)果如圖3(b)所示。最后再?gòu)男】蛑羞x取X值最大的點(diǎn)即為右上角頂點(diǎn),并將此點(diǎn)設(shè)為XaYi,至此通過二向排序,完成另外兩個(gè)角點(diǎn)的定位。
以上是在4個(gè)角的頂點(diǎn)不是死燈的情況下進(jìn)行的初步定位,如果在4個(gè)角點(diǎn)處出現(xiàn)死燈則需進(jìn)一步進(jìn)行補(bǔ)點(diǎn)并重新定位。
首先將初步定位的4個(gè)角點(diǎn)相鄰之間兩兩連線,得到4條直線并分別設(shè)為D1、D2、D3、D4(圖4),得出理論上圖像點(diǎn)最外圍4條邊的直線方程的參數(shù)。
k1=(yXaYi-yXiYi)/(xXaYi-xXiYi),
(1)
b1=yXaYi-k1xXaYi,
(2)
k2=(yXaYa-yXiYa)/(xXaYa-xXiYa),
(3)
b2=yXaYa-k2xXaYa,
(4)
k3=(yXiYa-yXiYi)/(xXiYa-xXiYi),
(5)
b3=yXiYa-k3xXiYa,
(6)
k4=(yXaYa-yXiYa)/(xXaYa-xXiYa),
(7)
b4=yXaYa-k4xXaYa.
(8)
圖4 無(wú)死燈情況下定位4條直線Fig.4 Positioning four straight lines without dead lights
然后根據(jù)公式(9)分別計(jì)算所有點(diǎn)到4條直線之間的距離:
(9)
當(dāng)xXaYi=xXiYi,或xXaYa=xXiYa時(shí),k值不存在,所以此時(shí)用公式(10)和(11)計(jì)算點(diǎn)到直線之間的距離:
d=|xXiYi-x|,
(10)
d=|xXaYa-x|,
(11)
將點(diǎn)到直線距離小于l/2的點(diǎn)分別歸類到4條邊線上,然后將屬于D1、D2兩條邊的點(diǎn)按照X值從小到大排列,將屬于D3、D4兩條邊的點(diǎn)按照Y值從小到大排列,完成線性歸類排序,并得出每條邊上點(diǎn)的數(shù)量m1、m2、m3、m4。
由于圖像點(diǎn)行列數(shù)已知,并設(shè)為p行q列,且每條直線所屬點(diǎn)個(gè)數(shù)也可以通過計(jì)算獲得,所以通過對(duì)比圖像點(diǎn)真實(shí)行列數(shù)與計(jì)算行列數(shù)是否相等可知角點(diǎn)處是否為死燈。但實(shí)際情況中4條邊界線上也有可能出現(xiàn)死燈的情況,所以我們先計(jì)算邊線上的死燈個(gè)數(shù)。
則有:
Bi=Ami-Ami-1,
(12)
設(shè)B1、B2中第二列有n1、n2個(gè)大于1.7l的值,B3、B4中第一列有n3、n4個(gè)大于1.7l的值,即n1、n2、n3、n4代表每條邊界線上死燈的個(gè)數(shù)(不包括頂點(diǎn))。
由于左上角頂點(diǎn)和右下角頂點(diǎn)是按照頂點(diǎn)到原點(diǎn)距離確定的,如果出現(xiàn)死燈則會(huì)分別出現(xiàn)兩種情況;而左下角和右上角的點(diǎn)是通過邊界排序計(jì)算的,所以只會(huì)出現(xiàn)一種情況(圖5)。
以圖5(a)為例,左上角頂點(diǎn)為死燈,且第二行第一列為到原點(diǎn)最近的點(diǎn),此時(shí)直線D3上的點(diǎn)個(gè)數(shù)m3加上死燈個(gè)數(shù)n3加上一個(gè)頂點(diǎn)死燈等于圖像點(diǎn)總行數(shù)p,直線D2上的點(diǎn)個(gè)數(shù)m2加上死燈個(gè)數(shù)n2等于圖像點(diǎn)總列數(shù)q,直線D4上的點(diǎn)個(gè)數(shù)m4加上死燈個(gè)數(shù)n4等于圖像點(diǎn)總行數(shù)p。如果滿足公式(13)則可以確定左上角頂點(diǎn)為死燈,此時(shí)為了后續(xù)的定位,需要在頂點(diǎn)處按照點(diǎn)間距和排列順序補(bǔ)充一個(gè)點(diǎn)坐標(biāo)。
(13)
同理可算出其余5種頂點(diǎn)死燈的坐標(biāo),完成角點(diǎn)坐標(biāo)的定位。
角點(diǎn)坐標(biāo)定位完成后,按照公式(3)、(4)、(7)、(8)可以計(jì)算出D3、D4兩條直線方程,再按照公式(9)設(shè)立閾值將屬于直線附近的點(diǎn)歸類到直線上并按照X值大小分別對(duì)兩條直線排序,若直線中出現(xiàn)死燈則按照規(guī)律自動(dòng)補(bǔ)點(diǎn)。此時(shí)獲得兩個(gè)p行兩列的坐標(biāo)矩陣E1、E2。其中,
雖然像素點(diǎn)總體排列接近棋盤格分布,但經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn)如果按照某一行的斜率分別賦予每一行,再根據(jù)點(diǎn)間距確定直線方程中的參數(shù)b這種方法計(jì)算所有行的直線方程,結(jié)果會(huì)出現(xiàn)誤差,所以需要分別對(duì)每一行單獨(dú)計(jì)算直線方程。矩陣E1,E2中每一行的點(diǎn)是相對(duì)應(yīng)的,所以根據(jù)公式(14)、(15)可以計(jì)算出p個(gè)直線方程。
ki=(yiq-yi1)/(xiq-xi1),(i=1…p),
(14)
bi=yiq-ki·xiq,(i=1…p),
(15)
然后根據(jù)公式(16)分別計(jì)算所有點(diǎn)到每條直線之間的距離:
1109 Herpes simplex virus typeⅠinduces β-amyloid expression in human neuroblastoma cell lines SH-SY5Y
(16)
如果出現(xiàn)斜率不存在的情況則有:
di=|xi1-x|,
(17)
至此將所有點(diǎn)分別歸屬到每條橫向直線上,再將每條直線上的點(diǎn)按照Y值從小到大排列即完成所有點(diǎn)的正確排序。
LED顯示屏的每個(gè)像素點(diǎn)是由紅、綠、藍(lán)3種顏色的發(fā)光二極管組成的,所以需要對(duì)每一種顏色的發(fā)光二極管進(jìn)行校正。常見的方法中將亮度最低值作為目標(biāo)值會(huì)導(dǎo)致顯示屏校正以后亮度降低嚴(yán)重,影響觀看效果。為了獲得校正的系數(shù)矩陣,本文首先需要獲取燈點(diǎn)的亮度值。具體方法為:將顯示屏分別顯示紅、綠、藍(lán)3種顏色,并將亮度調(diào)節(jié)至最大,方便CCD相機(jī)采集顯示屏圖像。對(duì)燈點(diǎn)的亮度值提取采用亮度值積分法,即統(tǒng)計(jì)燈點(diǎn)的方框內(nèi)所有像素點(diǎn)值之和,然后將所有燈點(diǎn)的亮度值相加求平均數(shù),將亮度值的平均數(shù)乘以0.85得到的亮度作為校正亮度的目標(biāo)值。確定目標(biāo)值以后讓所有燈點(diǎn)亮度通過一個(gè)變換矩陣變?yōu)檫@個(gè)目標(biāo)值以達(dá)到亮度一致的目的。最后將目標(biāo)亮度值與所有燈點(diǎn)的亮度值相除得出系數(shù)矩陣:
(18)
亮度均勻性的計(jì)算過程如下:
(1)在最高灰度級(jí)、最高亮度級(jí)下顯示白場(chǎng)。
(3)用公式(19)計(jì)算各點(diǎn)亮度均勻性Pi。
(19)
式中i為0~8中任意一點(diǎn)。
(4)取(3)中最小值來表示LED顯示屏的亮度均勻性Lp。
圖6 亮度均勻性測(cè)量點(diǎn)示意圖Fig.6 Schematic diagram of brightness uniformity measurement points
為了驗(yàn)證本文提出算法的有效性,本文進(jìn)行了一系列實(shí)驗(yàn)。實(shí)驗(yàn)選用尺寸為320×180的矩形LED顯示屏進(jìn)行檢測(cè),計(jì)算出了所有LED燈點(diǎn)的位置信息,并根據(jù)目標(biāo)亮度值計(jì)算出系數(shù)矩陣,對(duì)顯示屏進(jìn)行亮度均勻性校正,校正前后顯示屏的白場(chǎng)顯示效果如圖7所示,其中(a)為校正前顯示效果,(b)為校正后顯示效果。
圖7 校正前(a)和校正后(b)顯示屏白場(chǎng)顯示效果對(duì)比圖Fig.7 Comparison chart of the white field display effect of the screen before (a) and after (b) calibration
對(duì)比圖7(a)和圖7(b),可以看出校正前顯示屏存在亮度不一致的塊狀區(qū)域,經(jīng)過校正后亮度趨于一致。最終經(jīng)過亮度檢測(cè)和計(jì)算可以得出校正前白場(chǎng)燈點(diǎn)亮度均勻性約為73.7%,而經(jīng)過校正后白場(chǎng)燈點(diǎn)亮度均勻性約為98.7%。校正前后顯示屏為白場(chǎng)和紅、綠、藍(lán)3種基色時(shí)測(cè)試點(diǎn)亮度值以及亮度均勻性結(jié)果如表1、表2所示。
表1 校正前亮度值與亮度均勻性Tab.1 Brightness value and brightness uniformity before correction
表2 校正后亮度值與亮度均勻性Tab.2 Brightness value and brightness uniformity after correction
本文針對(duì)LED顯示屏校正過程中相機(jī)拍攝的圖像存在一定程度的傾斜問題,提出了燈點(diǎn)定位排序的算法。通過二向排序和歸類排序的方法完成了燈點(diǎn)坐標(biāo)的預(yù)定位,然后根據(jù)差值檢測(cè)和周圍點(diǎn)坐標(biāo)對(duì)死燈位置進(jìn)行了補(bǔ)足。最后根據(jù)燈點(diǎn)的定位排序?qū)ED顯示屏進(jìn)行了亮度校正實(shí)驗(yàn),校正前后顯示屏白場(chǎng)的亮度均勻性由73.7%提高至98.7%,達(dá)到人眼可接受的范圍內(nèi),且亮度在可接受的范圍內(nèi),從而驗(yàn)證了本文提出的燈點(diǎn)定位排序法的準(zhǔn)確性。