NI Vision for LabVIEW 基礎(四):進行顆粒分析

本節介紹如果對圖像進行顆粒分析。顆粒分析用於獲得統計信息,如面積、數量、位置、以及顆粒存在。 利用這些信息,可以完成許多機器視覺檢測任務,例如硅圓片的裂縫檢測,或電路板的焊接缺陷檢測。如何進行顆粒分析的例子有助於實現網絡檢測任務的實現包括定位木板的結構化缺陷或檢查塑料薄模裂縫。
下圖列舉了實現顆粒分析的步驟:
 
  clip_image001
創建二值圖像
通過閾值將灰度或彩色圖像創建一個二值圖像。創建的二值圖像將物體從需要檢測的背景中分割出來。閾值運算將二值圖像中的背景像素設置爲0,而將物體像素設置成非零值。物體像素的默認值爲1,但可以將物體像素設置成任意值。
可以採用不同的技術來閾值化圖像。如果灰度圖像中關注的物體融合在連續的密度範圍內,可以利用IMAQ Threshold模塊手動制定與之範圍。如果灰度圖像中所有的物體比背景更亮或更暗,可以使用NI Vision中的一種自動閾值技術。使用自動閾值技術的完整步驟如下:
1. 使用IMAQ AutoBThreshold 2 模塊選擇自動確定優化範圍的閾值技術。
2. 將Threshold Data 輸出到IMAQ MultiThreshold模塊, 或者使用Lookup Table 輸出給使用IMAQ UserLookup模塊將查找表提供圖像。
如果灰度圖像包含多個非連續的灰度值的物體,使用IMAQ MultiThreshold 模塊。
如果灰度圖像包含的物體其灰度值由於光線飄移而變化時,使用IMAQ Local Threshold 模塊。
如果需要劃分閾值的灰度圖像光線條件不一致,例如強照明梯度或陰影導致,使用IMAQ Local Threshold 模塊。需要定義一個像素窗口指明那些臨近像素參與統計計算。默認的窗口大小爲32 × 32.。然而,窗口大小可以近似於需要從背景中分離的最小物體的大小。有時可能需要定義一個本地閾值算法。本地閾值算法可以選擇Niblack 或 背景修正算法。關於本地閾值的詳細內容,參見NI視覺概念手冊,第8章,圖像分段
自動閾值技術比基於固定範圍的簡單閾值提供了更多的靈活性。由於自動閾值技術根據圖像直方圖確定閾值水平,與固定閾值相比,這種運算受圖像整體亮度和對比度變化的影響更小。由於這種技術在兩度變化上更穩定,所以被廣泛用於自動監測任務。
如果爲彩色圖像定義閾值,使用IMAQ ColorThreshold 模塊。必須爲每個色面制定閾值範圍,不管是紅、綠、藍,或色調、飽和度、流明。來自彩色閾值的二值圖像結果是一個8-bit的二值圖像。
改善二值圖像
在閾值圖像之後,可能需要使用二值形態函數來改善結果二值圖像。可以使用基本的二值形態函數或高級二值形態函數來去除不希望的顆粒,分割連接的顆粒,或改善顆粒的形狀。基本形態函數以單個像素爲單位處理整個圖像。高級形態函數是基於基本形態運算建立的,以一批像素爲單位,而不是以單個像素爲單位。形態學函數中那些是基本的,那些是高級的列表,參見NI 視覺概念手冊,第9章,二值形態學
高級形態函數要求制定所使用的連通性。連通性告訴NI Vision如何判定兩個鄰接的像素是否屬於同一個顆粒。在需要NI Vision研究一些像素是否是同一顆粒的一部分時,僅當像素是邊沿接觸時使用connectivity-4。當要求NI Vision 研究一些像素是否是同一顆粒的一部分時,即便像素僅僅是在角上鄰接時,使用 connectivity-8 。關於連通性的更多信息,參見NI 視覺概念手冊,第9章,二值形態學
說明 整個應用程序中,要使用同樣的連通性。
去掉不希望的顆粒
IMAQ RejectBorder 模塊用於去掉接觸圖像邊沿的顆粒。當覺得接觸到圖像邊沿顆粒的信息不完整的時候,可以去掉這些顆粒。
IMAQ RemoveParticle 模塊用於去掉不關心的大、小顆粒。還可以使用IMAQ Morphology 模塊中的Erode, Open, 和POpen 函數去除小顆粒。與IMAQ RemoveParticle 模塊不同,這三個函數改變剩下的顆粒的大小和形狀。
IMAQ Morphology 的hit-miss函數用於定位像素的顆粒配置,顆粒配置是利用一個結構化元素定義的。根據結構化元素的配置,hit-miss函數可以定位到單個孤立的像素, 交叉形或長條形,沿着顆粒邊緣的右角形,以及其它用戶定義的形狀。有關結構化元素的詳細內容,參見NI Vision概念手冊,第9章,二值幾何
如果對需要保留或去除的顆粒的形狀特徵足夠了解,可以使用IMAQ Particle Filter 2 模塊來過濾掉不感興趣的顆粒。
分割接觸的顆粒
使用分界線變換和二值幾何可以將圖像中的接觸顆粒分割開。
使用分界線變換
IMAQ Danielsson 模塊用於獎二值圖像變換成一個灰度距離圖,其中每個顆粒像素被賦給一個灰度級值。等於它到顆粒邊緣的最短歐幾里得距離。將IMAQ Watershed Transform 模塊應用於這個距離圖就可以找到區域分割線。使用IMAQ Mask 模塊把分界線重疊在原始圖像上。
有關使用分界線變換的詳細內容,參見NI Vision概念手冊,第8章,圖像分割
使用二值幾何
可以使用IMAQ Separation 模塊或者使用IMAQ Morphology 模塊的erosion 或 open 函數來分割接觸的物體。IMAQ Separation模塊是一個高級程序它能分割顆粒而不改變其形狀。而erosion 和 open 運算則改變所有顆粒的形狀。
說明 侵蝕、分界線變換和開放 運算(erosion, watershed transform, or open)相比,IMAQ Separation是一種耗時的運算。如果運算速度是應用程序中的一個考量,可以考慮其他某種方法而不使用分割運算。
改進顆粒形狀
IMAQ FillHole 模塊用於填補顆粒中的空洞。IMAQ Morphology 模塊用於對顆粒進行一系列運算。可以使用Open, Close, POpen, PClose, 和 AutoM 運算來平滑顆粒的邊緣。Open 和POpen 通過去掉細小的峽縫來平滑顆粒的邊緣,而Close是加寬峽縫。Close 和 PClose 用於填補顆粒中的小孔。AutoM 去掉峽縫並填孔。關於這些運算的詳細內容,參見NI Vision概念手冊,第9章,二值幾何
進行顆粒測量
在生成了二值圖像並進行改進之後,就可能對顆粒進行測量。NI Vision 可以返回非校準或校準的真實單位像素測量值。通過這些測量值,可以確定顆粒的位置和它們的形狀特徵。下面的模塊用於顆粒測量:
  1. IMAQ Particle Analysis Report—該模塊返回圖像中的顆粒數,和一個報告數據包括11個最常用的測量值,包括顆粒面積,邊界矩形,質量中心等。
  2. IMAQ Particle Analysis—該模塊返回最多80個可選擇的顆粒測量值。 IMAQ Particle Analysis 模塊測量值的列表,參見NI Vision概念手冊,第9章,顆粒測量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章