機(jī)器視覺在大型工件自動(dòng)探傷檢測(cè)中的應(yīng)用
Step1:初始化邊緣點(diǎn)位置EdgeDot=(col, vol), col=0,vol=0。定義邊緣圖figureedge數(shù)組,大小為nWidth×nHeight,初始化為全255(非邊緣);
Step2:在非最大抑制所得圖中查看EdgeDot點(diǎn)的值,并賦給IfEdge;
Step3:if(IfEdge=noedge)then Step7;
Step4:查看梯度圖中EdgeDot點(diǎn)的值,并賦給magni- tude;
Step5:if(magnitudeStep6:在記錄結(jié)果的邊緣圖中記下EdgeDot點(diǎn)并設(shè)置非最大抑制圖對(duì)應(yīng)點(diǎn)值為noedge,然后在梯度圖中查看EdgeDot點(diǎn)的八鄰域點(diǎn)梯度magnitudenear,若magnitudenear>h1,重復(fù)執(zhí)行Step6, 否則執(zhí)行Step7;
Step7:col++;
if(col>=nWidth) then vol++;
if(vol>=nHeight) then end;(程序結(jié)束)
執(zhí)行Step2。
算法中門限的選擇直接影響著Canny算子的性能。
作者用Visual C++ 6.0實(shí)現(xiàn)了該算法,主要包括:圖象平滑(image smoothing,這里使用高斯濾波)、微分(differentiation)處理、非最大值抑制non-maximum suppression)、邊緣閾值化(edge thresholding)等步驟。選取CT圖像序列中的一切片(如圖1所示)該圖像分割算法在實(shí)際應(yīng)用中效果如圖1所示:
圖1 邊緣提取效果圖
在工業(yè)CT圖像中不同區(qū)域的物質(zhì)表現(xiàn)為灰度值異于周圍物質(zhì)的灰度值。所以,研究者們常通過(guò)邊緣檢測(cè)技術(shù)和圖像分割技術(shù)把這個(gè)區(qū)域分離出來(lái),使之成為一個(gè)獨(dú)立的分析對(duì)象,然后再進(jìn)行準(zhǔn)確測(cè)量。目前,常見的面積測(cè)量大都依賴于手工完成,主要通過(guò)用戶使用鼠標(biāo)點(diǎn)擊所測(cè)面積區(qū)域的周圍來(lái)得到一個(gè)閉合的區(qū)域,將該區(qū)域近似為待測(cè)的面積區(qū)域,而后通過(guò)統(tǒng)計(jì)該區(qū)域內(nèi)像素點(diǎn)的個(gè)數(shù)來(lái)近似計(jì)算面積。而常見的周長(zhǎng)和極徑測(cè)量也是如同面積測(cè)量一樣僅能得到一個(gè)近似值。顯然,這些測(cè)量方法由于人為原因或算法本身的缺點(diǎn),給測(cè)量帶來(lái)了較大的誤差,并不具有可重復(fù)操作性,使得成批的圖像測(cè)量難以實(shí)現(xiàn)。
因此,以下通過(guò)對(duì)工業(yè)CT圖像進(jìn)行準(zhǔn)確地分割得到邊緣,并在此基礎(chǔ)上提出針對(duì)大型金屬工件的CT圖像面積、周長(zhǎng)以及極徑等幾何尺寸的自動(dòng)測(cè)量方法。
4.1 面積測(cè)量
由于區(qū)域的面積與其內(nèi)部灰度級(jí)的變化無(wú)關(guān),而只與該區(qū)域邊界有關(guān),因此只要確定了區(qū)域邊界點(diǎn)的坐標(biāo),就可利用邊界坐標(biāo)來(lái)計(jì)算區(qū)域的面積。在Green定理中指出,在x-y平面內(nèi)的一個(gè)封閉曲線包圍的面積由其輪廓積分給定,即
(4)
其中,積分沿著該封閉曲線進(jìn)行。Green公式表明,只要確定了一條封閉曲線的各點(diǎn)坐標(biāo),就可以根據(jù)這些坐標(biāo)點(diǎn)計(jì)算出該曲線包圍的區(qū)域的面積。由上述原理可得到面積計(jì)算的方法如下:由于工業(yè)CT圖像是一種離散化的數(shù)據(jù)形式,那么區(qū)域的邊緣也是一個(gè)離散的點(diǎn)集,因此需要將Green定理離散化后才能計(jì)算區(qū)域的面積。Green定理的離散形式如下:
(5)
該離散形式表達(dá)式實(shí)質(zhì)上是將封閉邊緣曲線確定的區(qū)域看成一個(gè)多邊形,并以區(qū)域中一點(diǎn)為中心點(diǎn)將其分成多個(gè)三角形,然后計(jì)算所有三角形的面積。4.2 周長(zhǎng)測(cè)量
區(qū)域的周長(zhǎng)是分割出的區(qū)域的邊界長(zhǎng)度。邊界通常可以用隙碼、鏈碼和面積表示。其中隙碼方法表示時(shí),測(cè)量長(zhǎng)度過(guò)程中包含了許多的轉(zhuǎn)彎,從而夸大了實(shí)際周長(zhǎng)值;而面積方法表示時(shí),僅統(tǒng)計(jì)邊界點(diǎn)數(shù),這樣又忽略了每一個(gè)像素的邊界長(zhǎng)度,從而縮小了實(shí)際周長(zhǎng)值;而鏈碼方法表示時(shí),它既考慮了每個(gè)像素的邊界長(zhǎng)度,又把轉(zhuǎn)彎變成一條直線,這樣周長(zhǎng)的測(cè)量精度就提高了。邊界鏈碼測(cè)量的主要思想如下:鏈碼是從在物體邊界上任意選取的某個(gè)起始點(diǎn) 坐標(biāo)開始的。該起始點(diǎn)有8個(gè)鄰接點(diǎn),其中至少有一個(gè)是邊界點(diǎn)。邊界鏈碼規(guī)定了從當(dāng)前邊界點(diǎn)走到下一個(gè)邊界點(diǎn)這一步驟必須采用的方向。由于有8種可能的方向,因此可以將它們從0到7編號(hào)[6],如圖2所示。邊界鏈碼包含了起始點(diǎn)的坐標(biāo)以及用來(lái)確定圍繞邊界路徑走向的編碼序列。 透射電鏡相關(guān)文章:透射電鏡原理
評(píng)論