李久芳
(中國(guó)電子科技集團(tuán)公司第四十五研究所,北京 101601)
CCD攝像機(jī)在用鏡頭光學(xué)器件取景進(jìn)行圖像采集時(shí),由于受對(duì)象與攝像機(jī)三維空間位置關(guān)系、鏡頭畸變和攝像機(jī)質(zhì)量等因素的影響,成像系統(tǒng)與理想針孔模型不一致,采集到的圖像存在幾何畸變,特別是在使用廣角鏡頭的時(shí)候,徑向畸變會(huì)嚴(yán)重影響圖像質(zhì)量,給圖像處理帶來(lái)困難。因此,在進(jìn)行基于圖像分析的模式匹配、運(yùn)動(dòng)檢測(cè)等定量分析時(shí),就需要對(duì)有幾何畸變的圖像進(jìn)行校正或?qū)z像機(jī)進(jìn)行幾何標(biāo)定。
采用數(shù)字圖像處理方法將畸變圖像變換成原始圖像,變換過(guò)程分為兩步:(1)幾何變換。即利用原圖像與畸變圖像的坐標(biāo)關(guān)系,也就是畸變規(guī)律對(duì)畸變圖像所在的坐標(biāo)空間進(jìn)行幾何變換。根據(jù)幾何變換找出圖像畸變的每個(gè)區(qū)域的變形量,并建立查找表;(2)灰度校正。對(duì)采集的畸變圖像查找并分析特征點(diǎn),計(jì)算出變形量,然后修正,得到校準(zhǔn)后的圖像。本文主要實(shí)現(xiàn)用仿射模型和標(biāo)準(zhǔn)的棋盤(pán)格模型對(duì)機(jī)器視覺(jué)造成的畸變圖像進(jìn)行幾何校正。
仿射模型采用的是與畸變相反的仿射變換來(lái)抵消圖像的畸變,先恢復(fù)圖像的變形角度,再對(duì)圖像進(jìn)行距離變換。這里以圖像的中心為坐標(biāo)原點(diǎn)。提取畸變圖像上特征點(diǎn),再利用仿射變換對(duì)圖像進(jìn)行旋轉(zhuǎn)、平移,實(shí)現(xiàn)對(duì)圖像的校正。
仿射模型作為多項(xiàng)式模型的一種特例,當(dāng)圖像獲取系統(tǒng)各個(gè)光軸基本平行且目標(biāo)距離較遠(yuǎn)時(shí),忽略伴隨的幾何畸變,可以認(rèn)為圖像間只有二維平行、旋轉(zhuǎn)和比例變化,圖像間的變換關(guān)系可以由一個(gè)仿射模型來(lái)描述。
仿射變換的定義:若變換S∶Rn→Rn,S(x)=T(x)+a,T是非奇異線(xiàn)性變換,a∈Rn,則變換S稱(chēng)為仿射變換。二維圖像仿射變換可以表示為:
其中,A是變形矩陣,B是平移矢量。二維空間中,仿射變換的變形矩陣可按如下4個(gè)步驟來(lái)分解:尺度、伸縮、扭曲、旋轉(zhuǎn)。
可以看出,仿射變換包含了圖像的幾種典型低階畸變。由于圖像的畸變是一個(gè)連續(xù)的過(guò)程,幾何畸變的變化量是有限度的,因此可假設(shè)仿射變換作為局部形變的模型。
可以將仿射模型簡(jiǎn)化為:
(x',y')為采集到圖像的坐標(biāo)位置,(x,y)為對(duì)應(yīng)的點(diǎn)在未產(chǎn)生畸變的圖像的坐標(biāo)值。
圖1 未產(chǎn)生畸變的圖像
圖2 采集的畸變圖像
特征點(diǎn)可分為兩類(lèi):狹義特征點(diǎn)和廣義特征點(diǎn)。狹義特征點(diǎn)是針對(duì)點(diǎn)本身定義的,其位置具有常規(guī)的屬性意義,如邊緣點(diǎn)、角點(diǎn)、交叉點(diǎn)等。廣義特征點(diǎn)是基于區(qū)域來(lái)定義的,只代表滿(mǎn)足一定特征條件的特征區(qū)域的位置。廣義特征點(diǎn)可以使某個(gè)特征區(qū)域的中心、重心或特征區(qū)域的任何一個(gè)相對(duì)位置。本文所指的特征點(diǎn)是指廣義特征點(diǎn)。
本文對(duì)特征點(diǎn)的提取是指提取標(biāo)準(zhǔn)棋盤(pán)格中的每個(gè)黑色和白色區(qū)域的重心。重心就是求物體(或區(qū)域)中像素坐標(biāo)的平均值,(見(jiàn)公式8)。其中(xi,y1)為區(qū)域內(nèi)像素的坐標(biāo),(x0,y0)為其重心坐標(biāo)。
假如圖像沒(méi)有產(chǎn)生畸變,如圖1所示,在這里需要根據(jù)CCD的分辨率和鏡頭的倍率算出實(shí)際成像系統(tǒng)的分辨率(見(jiàn)公式9),根據(jù)成像系統(tǒng)的分辨率,將標(biāo)準(zhǔn)棋盤(pán)格上的特征點(diǎn)轉(zhuǎn)化為像素的相對(duì)坐標(biāo)值。這就需要知道標(biāo)準(zhǔn)棋盤(pán)格的物理尺寸及其他相關(guān)參數(shù)。
x向相對(duì)坐標(biāo)值=x向相對(duì)位置×成像系統(tǒng)的x向分辨率
y向相對(duì)坐標(biāo)值=y向相對(duì)位置×成像系統(tǒng)的y向分辨率
因此只要知道標(biāo)準(zhǔn)棋盤(pán)格上的每個(gè)區(qū)域的中心間距,便可根據(jù)上面的公式計(jì)算出像素的相對(duì)坐標(biāo)值。
對(duì)于采集到的畸變圖像,如圖2所示,對(duì)圖像進(jìn)行圖像增強(qiáng)、平滑濾波、二值化得到二值圖像,然后對(duì)得到的二值圖像進(jìn)行圖像形態(tài)處理(先“膨脹”后“腐蝕”),之后再將這些二值化的圖像連接成幾何相關(guān)的區(qū)域,將標(biāo)記后的區(qū)域,按照尺寸大小進(jìn)行排序,通過(guò)設(shè)置閾值,去除小的區(qū)域。
在得到7×9的分塊區(qū)域后,對(duì)區(qū)域分塊標(biāo)記進(jìn)行深入的研究,能夠快速地對(duì)每個(gè)特征點(diǎn)進(jìn)行特征提取。圖3為圖像處理流程。
圖3 特征點(diǎn)的提取
圖4 采集的畸變圖像
圖5 校正后的圖像
[1]徐慧.Visual C++數(shù)字圖像實(shí)用工程案例精選[M].北京:人民郵電出版社,2004.
[2]陳兵旗,孫明.Visual C++實(shí)用圖像處理專(zhuān)業(yè)教程[M].北京:清華大學(xué)出版社,2004.