Halcon算子


*關閉窗口
dev_close_window ()

 

*讀取圖像
read_image (Image, 'D:/程序猿/Halcon/Halcon練習/個人練習/圖像匹配/board-01.png')

 

*獲取圖像大小
get_image_size (Clip, Width, Height)

 

*打開新窗口
dev_open_window (0, 0, Width / 2, Height / 2, 'black', WindowID)

 

*在新窗口里顯示圖像
dev_display (Clip)

 

*設置窗口字體顯示,字體大小,字體樣式,粗體,斜體
set_display_font (WindowID, 14, 'mono', 'true', 'false')

 

*停止程序的執行
stop ()

 

*顯示圖像
dev_display (Clip)

 

*設置輸出對象的顏色為綠色
dev_set_color ('green')

 

*顯示過濾后的區域
dev_display (Selected)

 

*獲取過濾后區域的方向
orientation_region (Selected, Phi)

 

*獲取過濾后區域的面積,中心的行坐標,列坐標
area_center (Selected, Area, Row, Column)

 

*設置輸出對象的線寬為3
dev_set_line_width (3)

 

*設置區域的填充方式
dev_set_draw ('margin')
Length := 80

 

*設置輸出對象的顏色為藍色
dev_set_color ('blue')

 

*在窗口上顯示十字
disp_arrow (WindowID, Row, Column, Row - Length * sin(Phi), Column + Length * cos(Phi), 4)

 

*在窗口上顯示文字

disp_message (WindowID, '左', 'window', 12, 12, 'red', 'true')

 

*灰度化
rgb1_to_gray(Image,GrayImage)

 

*預處理R/GB H/S/V分量
decompose3 (Image, R, G, B)
trans_from_rgb (R, G, B, H, S, V, 'hsv')

 

*閾值操作
threshold (Saturation, Regions, 182, 255)

 

*剪切ROI區域的圖像
reduce_domain (Image, SelectedRegions, ImageReduced)

 

*獲取區域輪廓
get_shape_model_contours (ModelContours, ModelID, 1)

 

*獲取最大面積區域
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)

 

*聯通區域
connection (Regions, ConnectedRegions)

 

*創建一個矩形ROI
gen_rectangle1 (Rectangle, 362, 212, 414, 262)

 

*填充過濾后區域里的內部間隙
fill_up (SelectedRegions, RegionFillUp)

 

*將填充區域形狀轉化為凸形
shape_trans (RegionFillUp, RegionTrans, 'convex')

 

*獲取凸形區域的邊界
boundary (RegionTrans, RegionBorder, 'inner')

 

*對RegionBorder區域進行形態學的膨脹操作,結構元素為2.5
dilation_circle (RegionBorder, RegionDilation, 2.5)

 

*所有區域合並為一個區域
union1 (RegionDilation, RegionUnion)

 

*對ImageReduced圖像進行邊緣提取
edges_sub_pix (ImageReduced, Edges, 'sobel_fast', 0.5, 20, 40)

 

*連通處理
connection (Region, ConnectedRegions)


*根據面積過濾
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 8000, 9000)

 

* 用矩形結構元素膨脹
dilation_rectangle1 (SelectedRegions, RegionDilation1, 3, 3)

 

* 用圓形結構元素膨脹
dilation_circle (SelectedRegions, RegionDilation2, 2.5)

 

* 用矩形結構元素腐蝕
erosion_rectangle1 (SelectedRegions, RegionErosion1, 3, 3)

 

* 用圓形結構元素腐蝕
erosion_circle (SelectedRegions, RegionErosion2, 2.5)

 

* 用矩形結構元素開運算
opening_rectangle1 (SelectedRegions, RegionOpening1, 10, 10)

 

* 用圓形結構元素開運算
opening_circle (SelectedRegions, RegionOpening2, 2.5)


*用矩形結構元素閉運算
closing_rectangle1 (SelectedRegions, RegionClosing1, 10, 10)

 

*用圓形結構元素閉運算
closing_circle (SelectedRegions, RegionClosing2, 3.5)

 算子:wait_seconds (0.5)  *括號內是以秒為單位的時間單位。

 

*計算兩條直線的距離(兩個相鄰區域的相同像素間的最小距離)

distance_rr_min (HoriLeftLinesMode,HoriRightLinesMode, MinDistance, Row1, Column1, Row2, Column2)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM