|
透明玻璃珠進行自動快速計數
如何對毫不起眼的透明小玻璃珠進行自動計數,或許有人說使用機器視覺大師對這些
價值不大的小東西自動計數沒有實際意義,有辱大師名號。是的,確實沒有什么意義,除非
讀者身邊有價值比較大的產品如珠寶,珍珠,精密小零件等,這些產品在交易的時候不是論斤
賣的,而是論顆或粒賣的,不過,這些產品太小了,如果數量多的話,人工用肉眼來數,還真是
費神費眼。筆者本人沒有什么貴重珠寶,所以使用透明小玻璃珠來說明如何使用模板識別算子
進行類似產品自動計數,希望對讀者能起到拋磚引玉的作用。
下圖是用圓形無底物品圍在工作臺上做測試的玻璃珠圖。
從上圖可以看出,玻璃珠是圓形的,翡翠綠,很像珠寶,緊挨在一起,乍看之下,
很多讀者可能會不由自主地想到使用BLOB算子進行計數。然而,由于玻璃珠相互緊靠
在一起,使用BLOB算子在分離的時候,不是那么可靠,容易少計。筆者使用模板識別
算子可靠地對這些產品進行計數。下面將詳細介紹具體的實現(xiàn)過程。
為了節(jié)省篇幅,筆者對機器視覺大師的一些基本操作不再介紹,直接進入相關的操作環(huán)節(jié)。
添加模板識別算子
假設機器視覺大師已經切換到”實時測量”模式。下面是建立模板識別算子進行玻璃珠計數
的操作過程。
- 點擊菜單”控件” ->”定位類”->”模板查找”添加到視場,將算子拖動到適當位置。
- 雙擊該算子,進行參數設置和模板學習。顯示參數設置窗口。

選擇模板區(qū)形狀為圓形,并且選擇對稱方式調整大小。關閉后,重新調整模板和搜索區(qū)
大小。如下圖:

注意:將搜索區(qū)覆蓋所有玻璃珠出現(xiàn)的區(qū)域。看到模板區(qū)沒有,比實際玻璃珠圖像要小。

- 在”識別”頁,選擇”絕對差”識別方法,最小分數設置為0.93以上。初始分數設置0.6左右。
最多實例數設置了100(假設,視場里面最多不超過100顆玻璃珠)。這些參數請根據實際視場
的圖像進行合適設置。

編寫腳本
點擊菜單”模式”->”編輯腳本”, 彈出”編輯腳本”對話框。選擇測量類型為“產品點數”。

上面的語句解釋如下:
將視場sight1的模板識別算子pfind1的計數結果賦值給count變量。
雖然筆者在腳本里面僅使用了一個變量,實際上產品計數類任務支持3個系統(tǒng)變量:
count,want和diff,具體說明如下:
|
變量名
|
說明
|
類型
|
|
count
|
實際的計數
|
整數
|
|
want
|
目標數
|
整數
|
|
diff
|
差額
|
整數
|
檢測運行
點擊菜單”相機”->”測量運行”,進入檢測狀態(tài)。倒入任意數量的玻璃珠,然后點擊”下一個”
按鈕完成一次自動測量。

實際應用建議
本文描述的視場相機使用了130萬分辨率彩色相機,背光,由于分辨率不是很高,所以視場
范圍不是很大。相機分辨率高,計數的視場范圍應該越大。需要強調的是,不同的產品進行
計數的時候,識別參數一定要根據具體的圖像進行設置,否則可能引起計數結果錯誤
|