Bottle Inspector Part1 : Counting Bottles -- Bottle Inspector Part1 : Counting Bottles --
§ 目的
編寫一個 "Macrofilter" 利用瓶蓋中間為基準找出,並傳回影像中找到的瓶數。
§ 過程
影像中這組瓶子有一些缺損,瓶子數量可以是不同的,但瓶子的 "maximal" 設 4
§ 結果
建立一個回圈名為 "CountBottles" 的 "Macrofiliter"
輸入影像中有幾個瓶子(用整數)
參考點陣列(如: Point2DArray)
§ 提示
每瓶塑膠瓶的頭之間的距離是一定的,此外,影像中的每個蓋子具有相同的寬度
瓶蓋可被視為一個明亮背景。下面的預覽畫面條紋顯示其亮暗
利用 "ScanMultipleStripes" filter 是1D影像邊綠檢測算法之一,找到瓶蓋
調整 "ScanMultipleStripes" filter 的參數來尋找瓶子的頭作為條紋。為了更方便,在預覽視窗進行參數的輸出。為改善調整 filter 參數的過程,請測試變化再RUN模式下。
以及配置 "ScanMultipleStripes" filter 傳回段的數組,要找每段的中間點,利用 "SegmentCenter" filter
§ 解決方案
1. 利用 "ScanMultipleStripes" filter 到新設的 "CountBottle" macrofiliter
2. 打開參數 "inScanPath" 編輯路徑,設定路徑如下圖示:
3. 在 "ScanMultiplestripes" filter 中設定:
- "inStripePolarity" 設值為 "Dark"
- "inScanwidth" 設值為 "20"
- "insmoothingstdDev" 設值為 "4.0"
- "inMinMagnitude" 設值為 "4.0"
4. 利用 "ScanMultiplestripes" filter 的 "outStripeSegments" 和 "Arraysize" filter 的 "inArray" 做連結,來統計發現的段
5. 利用 "ScanMultiplestripes" filter 的 "outStripeSegments" 和 "SegmentCenter" filter 的 "inSegment" 做連結, 來找出每個段間的中心點
§ Macrofilter CountBottles calculates the bottles' count