天天看點

LabVIEW輪廓分析與比較(基礎篇—8)

輪廓(Contour)是指可以在圖像中勾勒出目标外形的一組互相連接配接的曲線(Curve)這些曲線由一系列目标物的邊緣點組成。由曲線構成的輪廓通常會勾勒出被測目标的外形(Shape)。是以,基于提取的目标輪廓,不僅可實作圖像分割,還能實作尺寸測量、缺陷檢測以及目标的輪廓分析、比對和輪廓分類等機器視覺應用。

例如,可以将觀測目标的輪廓與輪廓模闆或拟合的曲線進行對比,以判斷目标是否存在或對其品質進行檢測。也可以通過檢測目标輪廓的周長、半徑、曲率和角度等關鍵尺寸資訊來判定其是否合格。此類應用的實作過程常涉及目标的輪廓提取、輪廓比對以及分類等技術。

LabVIEW輪廓分析與比較(基礎篇—8)

Nl Vision為輪廓提取、輪廓比較和輪廓分析分類提供了專門的函數集,這些VI位于LabVIEW的視覺與運動→Machine Vision→Contour Analysis函數選闆中,如下圖所示:

LabVIEW輪廓分析與比較(基礎篇—8)

函數說明及使用可參見幫助手冊:

LabVIEW輪廓分析與比較(基礎篇—8)

IMAQ Extract Contour封裝了輪廓提取過程,包括種子點搜尋、曲線追蹤、曲線連接配接和輪廓選擇幾個步驟。經IMAQ Extract Contour可選出離搜尋起點最近、長度最長或平均梯度最強的3類目标輪廓,被提取出的輪廓資訊會被附加在記憶體中的圖像之後供後續處理過程使用。

輪廓可以參與兩種比較運算,一種是與基于輪廓像素點拟合得到的理想曲線進行比較,另一種是與輪廓模闆進行比較。無論何種情況下進行輪廓比較,都逐點比較輪廓與曲線或模闆上對應點之間的距離,并根據設定的距離範圍來判斷被測目标輪廓的偏離。

通過比較易拉罐的輪廓與基于輪廓像素拟合得到的圓形曲線,并根據它們之間的最大距離來判斷易拉罐的品質的案例,了解NI Vision自帶的輪廓與拟合曲線比較的使用方法,程式設計思路如下所示:

程式一開始先從指定的檔案夾中讀取待測圖像檔案,然後使用IMAQ ExtractContour提取出環形ROI中最長的易拉罐輪廓;

IMAQ Fit Contour則從檔案中讀取出輪廓資訊,并基于這些點拟合出圓形曲線。該圓形曲線作為判斷合格易拉罐的參照标準被儲存在記憶體中的圖像之後,供後續過程使用;

IMAQ Compute Contour Distances可以從記憶體圖像資料中提取出輪廓和曲線資訊,并計算它們之間的距離;

For循環檢查各個對應點之間的距離是否超出設定的最大限度,并顯示距離曲線。若有任何兩點之間的距離超限,就将測試結果設定為Fail;

IMAQ Overlay Contour和Overlay Point withUser Specified Size.vi在圖像中通過無損圖層的形式顯示出輪廓,并标出距離超限的輪廓點。

程式設計如下所示:

LabVIEW輪廓分析與比較(基礎篇—8)

通過運作程式,調整While循環的延時,可以觀察程式的運作結果,效果如下所示:

LabVIEW輪廓分析與比較(基礎篇—8)

項目資源下載下傳:

https://download.csdn.net/download/m0_38106923/19854388

目标的輪廓也可以與輪廓模闆進行比較。與拟合曲線比較的過程不同,在與輪廓模闆進行比較之前,需要先收集标準參考圖像中的輪廓模式特征資訊,生成輪廓模闆,并将其添加在标準參考圖像之後以備後用。該過程稱為輪廓的學習(Learning)過程。實際檢測的目标并不都與标準參考圖像中的目标相同,而是可能進行了縮放(Scale)、旋轉(Rotate)或交疊(Occlusion),如下圖所示:

LabVIEW輪廓分析與比較(基礎篇—8)

是以在輪廓學習過程中,除了要收集标準位置的輪廓資訊,還要基于标準的參考目标,計算縮放或旋轉情況目标的輪廓資訊,以支援視場中目标輪廓的各種姿态。預設情況下,Nl Vision可支援縮放量為原目标的±25%,且在視場中360°旋轉的目标。程式支援的旋轉角度和縮放比例越大,其執行時間就會越長。設計過程中,要根據實際情況盡可能限制旋轉角度和縮放比例,必要的時候還要與算法的速度進行權衡取舍。

繼續閱讀