夏建春,陸旭明,高蘭
(常州紡織服裝職業(yè)技術(shù)學(xué)院,江蘇 常州 213164)
圖像測(cè)量技術(shù)不同于其它測(cè)量方法的最主要特點(diǎn),是圖像測(cè)量時(shí)由于在成像過程中被測(cè)要素會(huì)全部反映在同幅圖片中,因此各幾何元素之間的相對(duì)位置關(guān)系不會(huì)發(fā)生變化。
當(dāng)相機(jī)焦距固定時(shí),那么圖像的尺寸由被測(cè)物體的尺寸和鏡頭與被測(cè)物之間的距離共同決定。反之,如果圖像中的尺寸確定了,被測(cè)物體的尺寸也就能確定。一般在測(cè)量時(shí),鏡頭與被測(cè)物之間的距離L的長(zhǎng)度可以通過標(biāo)定的方法消除,即圖像尺寸直接表示成被測(cè)物體的尺寸。在圖像中,圖像中的尺寸往往使用像素進(jìn)行表示的。標(biāo)定就是指確定像素點(diǎn)之間的長(zhǎng)度。相機(jī)標(biāo)定的方法大致可分為傳統(tǒng)標(biāo)定法、自標(biāo)定方法兩類。本文主要采用的是傳統(tǒng)相機(jī)標(biāo)定方法,將相機(jī)固定住。相機(jī)與被測(cè)物體之間的距離也被固定下來。采用一個(gè)標(biāo)定物進(jìn)行圖像的采集。標(biāo)定物的尺寸參數(shù)都要固定,那么得到的圖像就可以進(jìn)行標(biāo)定了,這樣就換算出單位像素表示的長(zhǎng)度和面積。
測(cè)量系統(tǒng)是模擬的人的視覺目測(cè)工件尺寸的,對(duì)于一個(gè)人目測(cè)一件物體時(shí),需要眼睛去看,然后大腦進(jìn)行分析。因此其基本結(jié)構(gòu)中,被測(cè)對(duì)象所處的背景應(yīng)簡(jiǎn)單,光照條件較好。攝像機(jī)進(jìn)行圖像采集,然后將圖像傳送給計(jì)算機(jī)進(jìn)行處理。這里攝像機(jī)就是模擬人眼睛的作用,而計(jì)算機(jī)則是模擬人大腦的作用。在這里相機(jī)作為眼睛的作用是至關(guān)重要的。
本文采用的相機(jī)是愛國(guó)者DLCW-L130萬高清晰彩色工業(yè)相機(jī),這款工業(yè)相機(jī)是由華旗數(shù)碼技術(shù)實(shí)驗(yàn)室最新開發(fā)的,高速USB2.0接口和大面陣CMOS圖像傳感器組成的高分辨率彩色數(shù)字?jǐn)z像機(jī)。該產(chǎn)品全面兼容MICROSOFT WINDOWS所有應(yīng)用環(huán)境。相機(jī)為即插即用型設(shè)備,用數(shù)據(jù)線將相機(jī)和計(jì)算機(jī)直接進(jìn)行連接。那么驅(qū)動(dòng)程序會(huì)將圖像數(shù)據(jù)裝載在計(jì)算機(jī)內(nèi)存中,只要解讀內(nèi)存數(shù)據(jù)就可以得到圖像數(shù)據(jù)了。
從相機(jī)的基本參數(shù)來看,130萬像素對(duì)于測(cè)量精度要求較高的場(chǎng)合是不夠的,但是一般測(cè)量還是可以滿足的。
本文針對(duì)的工件物體的主要尺寸是通過圖像數(shù)據(jù)的分析得到的。
圖像的采集是將空間的物體轉(zhuǎn)換成二維平面表示,將圖像信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),那么計(jì)算機(jī)就能夠進(jìn)行處理了。
首先進(jìn)行的是圖像的切割處理,本文采用的工業(yè)相機(jī)的視角較大,整個(gè)圖像包括了許多不需要的數(shù)據(jù),本文的興趣區(qū)域只集中在中間特定的區(qū)域范圍內(nèi),因此,可以將不感興趣的區(qū)域進(jìn)行切除。這里,本文就采用了直接刪除的方式可以將圖像縮小成800*600的圖像數(shù)據(jù),從而大大減少了數(shù)據(jù)運(yùn)算量。
本文的目的是為了進(jìn)行尺寸的測(cè)量,因此本文是不需要圖像信息的。這里采用灰度圖進(jìn)行圖像的表示。為了將目標(biāo)圖像轉(zhuǎn)換成灰度圖,采用的方法很多,本文采用了如下公式:
濾波是為了讓圖像減小噪聲的干擾,本文采用的濾波方法為中值濾波,采用的濾波模板為3*3的方式。中間的為對(duì)象像素點(diǎn),該點(diǎn)的8-鄰域的數(shù)據(jù)與本身共9個(gè)數(shù)據(jù)進(jìn)行排列,取中間的值作為目標(biāo)像素點(diǎn)的值進(jìn)行賦值。運(yùn)算完成,模板移動(dòng),完成下一個(gè)像素點(diǎn)的賦值。
然后就需要進(jìn)行圖像分割了,圖像分割是將目標(biāo)物體與背景分割開,是對(duì)目標(biāo)物體運(yùn)算的最直接方式,也是極其重要的過程。圖像分割的方法很多,本文主要采用的是閾值分割的方法。 即 g(x,y)=
T即為閾值,通過這種方式就將目標(biāo)物體分割開。閾值的選擇往往是需要文獻(xiàn)關(guān)注的焦點(diǎn),本文由于目標(biāo)特征明顯,環(huán)境簡(jiǎn)單。因此閾值是直接賦予的,在測(cè)試時(shí),根據(jù)環(huán)境的不同,采用程序的滑動(dòng)條進(jìn)行閾值的修正。
圖像分割完成之后,就可以進(jìn)行工件尺寸的計(jì)算了。根據(jù)第二節(jié)的內(nèi)容可知,這里只需要進(jìn)行像素?cái)?shù)據(jù)的統(tǒng)計(jì)工作。程序流程中,工件的尺寸數(shù)據(jù)分成三個(gè)模塊分別進(jìn)行統(tǒng)計(jì)計(jì)算。第一個(gè)模塊是工件的面積,本文直接進(jìn)行像素點(diǎn)的統(tǒng)計(jì)。
第二個(gè)模塊是工件的周長(zhǎng),這里的周長(zhǎng)數(shù)據(jù)計(jì)算可以根據(jù)邊緣數(shù)據(jù)進(jìn)行計(jì)算。求取邊緣的模板很多,比較常用的梯度算子模板包括有 Roberts模板、Sobel模板、Laplacian模板等。本文求取周長(zhǎng)采用的8-鄰域跟蹤算法。
圖像中的任一點(diǎn)總有8個(gè)點(diǎn)和它相鄰,即8鄰域點(diǎn)。如設(shè)定目標(biāo)點(diǎn)正上方的點(diǎn)為0鄰域點(diǎn),按逆時(shí)針方向8鄰域點(diǎn)分別標(biāo)為0鄰域點(diǎn)、1鄰域點(diǎn)、… …、7鄰域點(diǎn)。它們相對(duì)目標(biāo)點(diǎn)的 坐 標(biāo) 分 別 為 (0,-1)、(-1,-1)、(-l,0)、(-1,1)、(0,1)、(1,1)、(1,0)、(1,-1)。 那么主要算法如下:①獲取二值圖像;②對(duì)圖像數(shù)據(jù)進(jìn)行掃描;③找到第一個(gè)點(diǎn)(當(dāng)像素?cái)?shù)據(jù)從0變?yōu)?時(shí),就認(rèn)為是第一個(gè)點(diǎn)),記錄點(diǎn)的位置數(shù)據(jù);④開始找邊緣,初始方向?yàn)?,找到邊界點(diǎn)則方向-2,否則+1,找到的目標(biāo)點(diǎn)像素?cái)?shù)據(jù)改為2,當(dāng)找到的目標(biāo)點(diǎn)為第一個(gè)點(diǎn)時(shí),結(jié)束。判斷邊緣像素點(diǎn)數(shù)是否處于模切片邊緣長(zhǎng)度區(qū)間,如是則目標(biāo)個(gè)數(shù)+1;⑤繼續(xù)下一目標(biāo)的搜索,重復(fù)(3)、(4)直到圖像數(shù)據(jù)全部掃描完成。
通過8-鄰域跟蹤就將周長(zhǎng)數(shù)據(jù)統(tǒng)計(jì)出。
第三個(gè)模塊是邊長(zhǎng)計(jì)算,邊長(zhǎng)的計(jì)算往往可以采用hough變換的方式,通過hough變化將同一直線上的像素統(tǒng)計(jì)出來,從而可以得到邊長(zhǎng)數(shù)據(jù)。本文采用的方式是根據(jù)第二模塊周長(zhǎng)統(tǒng)計(jì)而來。根據(jù)8-鄰域的觀點(diǎn)可以認(rèn)為,邊與邊交界處是圖像像素鄰域方向突然變化的地方,因此在第二模塊計(jì)算邊緣時(shí),同時(shí)記錄方向數(shù)據(jù)。方向不變的可以認(rèn)為是同一邊,方向突變,那么就要下一個(gè)邊的統(tǒng)計(jì)。
本文主要設(shè)計(jì)的是一套基于視覺圖像的檢測(cè)裝置,在相機(jī)的基本條件下滿足了一半測(cè)量的要求。同時(shí),該裝置主要是進(jìn)行的固定測(cè)量,如果需要在實(shí)際應(yīng)用中進(jìn)行動(dòng)態(tài)測(cè)量,那么最關(guān)鍵之處還在于如何進(jìn)行標(biāo)定。同時(shí),由于被測(cè)物體往往都是三維的。因此測(cè)量時(shí),需要不斷的調(diào)整視覺位置以正對(duì)的被測(cè)物,這就需要機(jī)械手的配合。