機(jī)器視覺在大型工件自動探傷檢測中的應(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è)置非最大抑制圖對應(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ì)的灰度值。所以,研究者們常通過邊緣檢測技術(shù)和圖像分割技術(shù)把這個區(qū)域分離出來,使之成為一個獨(dú)立的分析對象,然后再進(jìn)行準(zhǔn)確測量。目前,常見的面積測量大都依賴于手工完成,主要通過用戶使用鼠標(biāo)點(diǎn)擊所測面積區(qū)域的周圍來得到一個閉合的區(qū)域,將該區(qū)域近似為待測的面積區(qū)域,而后通過統(tǒng)計該區(qū)域內(nèi)像素點(diǎn)的個數(shù)來近似計算面積。而常見的周長和極徑測量也是如同面積測量一樣僅能得到一個近似值。顯然,這些測量方法由于人為原因或算法本身的缺點(diǎn),給測量帶來了較大的誤差,并不具有可重復(fù)操作性,使得成批的圖像測量難以實(shí)現(xiàn)。
因此,以下通過對工業(yè)CT圖像進(jìn)行準(zhǔn)確地分割得到邊緣,并在此基礎(chǔ)上提出針對大型金屬工件的CT圖像面積、周長以及極徑等幾何尺寸的自動測量方法。
4.1 面積測量
由于區(qū)域的面積與其內(nèi)部灰度級的變化無關(guān),而只與該區(qū)域邊界有關(guān),因此只要確定了區(qū)域邊界點(diǎn)的坐標(biāo),就可利用邊界坐標(biāo)來計算區(qū)域的面積。在Green定理中指出,在x-y平面內(nèi)的一個封閉曲線包圍的面積由其輪廓積分給定,即
(4)
其中,積分沿著該封閉曲線進(jìn)行。Green公式表明,只要確定了一條封閉曲線的各點(diǎn)坐標(biāo),就可以根據(jù)這些坐標(biāo)點(diǎn)計算出該曲線包圍的區(qū)域的面積。由上述原理可得到面積計算的方法如下:由于工業(yè)CT圖像是一種離散化的數(shù)據(jù)形式,那么區(qū)域的邊緣也是一個離散的點(diǎn)集,因此需要將Green定理離散化后才能計算區(qū)域的面積。Green定理的離散形式如下:
(5)
該離散形式表達(dá)式實(shí)質(zhì)上是將封閉邊緣曲線確定的區(qū)域看成一個多邊形,并以區(qū)域中一點(diǎn)為中心點(diǎn)將其分成多個三角形,然后計算所有三角形的面積。4.2 周長測量
區(qū)域的周長是分割出的區(qū)域的邊界長度。邊界通??梢杂孟洞a、鏈碼和面積表示。其中隙碼方法表示時,測量長度過程中包含了許多的轉(zhuǎn)彎,從而夸大了實(shí)際周長值;而面積方法表示時,僅統(tǒng)計邊界點(diǎn)數(shù),這樣又忽略了每一個像素的邊界長度,從而縮小了實(shí)際周長值;而鏈碼方法表示時,它既考慮了每個像素的邊界長度,又把轉(zhuǎn)彎變成一條直線,這樣周長的測量精度就提高了。邊界鏈碼測量的主要思想如下:鏈碼是從在物體邊界上任意選取的某個起始點(diǎn) 坐標(biāo)開始的。該起始點(diǎn)有8個鄰接點(diǎn),其中至少有一個是邊界點(diǎn)。邊界鏈碼規(guī)定了從當(dāng)前邊界點(diǎn)走到下一個邊界點(diǎn)這一步驟必須采用的方向。由于有8種可能的方向,因此可以將它們從0到7編號[6],如圖2所示。邊界鏈碼包含了起始點(diǎn)的坐標(biāo)以及用來確定圍繞邊界路徑走向的編碼序列。 透射電鏡相關(guān)文章:透射電鏡原理
評論