HALCON示例程序hull.hdev區域提取與凸度篩選
示例程序源碼(加注釋)
- 關于顯示類函數解釋
read_image (Hull, ‘hull’)
get_image_size (Hull, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, ‘black’, WindowID)
dev_display (Hull) - 二值化
threshold (Hull, Dark, 0, 80) - 求取兩個區域不相交部分
difference (Hull, Dark, Light) - 分割連通域
connection (Light, ConnectedRegions) - 使用面積篩選區域
select_shape (ConnectedRegions, NoHullCand, ‘area’, ‘and’, 50000, 9999999) - 使用圓形元素進行閉運算
closing_circle (NoHullCand, NoHull, 13.5) - 求取區域不相交部分
difference (Hull, NoHull, Region) - 使用圓形元素進行開運算
opening_circle (Region, RegionOpening, 2.5) - 分割連通域
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, RegionHull, ‘area’, ‘and’, 5000, 9999999) - 轉換區域形狀
shape_trans (RegionHull, ConvexHull, ‘convex’)
difference (ConvexHull, RegionHull, Region)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, LargeHoles, ‘area’, ‘and’, 2000, 99999) - 根據凸度篩選區域
select_shape (LargeHoles, Holes, ‘convexity’, ‘and’, 0, 0.85)
dev_display (Hull)
dev_set_line_width (5)
dev_set_draw (‘margin’)
dev_set_color (‘red’)
dev_display (Holes)
處理思路
這個例子是主要講解了select_shape 使用’convexity’凸度,shape_trans 對區域進行形狀變換。
后記
大家有什么問題可以向我提問哈,我看到了第一時間回復,希望在學習的路上多多結交良師益友。