HALCON示例程序measure_metal_part_first_example.hdev通过拟合边缘进行尺寸测量
生活随笔
收集整理的這篇文章主要介紹了
HALCON示例程序measure_metal_part_first_example.hdev通过拟合边缘进行尺寸测量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
HALCON示例程序measure_metal_part_first_example.hdev通過擬合邊緣進行尺寸測量
示例程序源碼(加注釋)
- 關于顯示類函數解釋
dev_update_off ()
read_image (Image, ‘metal-parts/metal-parts-01’)
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, ‘light gray’, WindowID)
dev_set_part (0, 0, Height - 1, Width - 1)
dev_set_line_width (3)
dev_set_color (‘white’)
dev_set_draw (‘margin’)
dev_display (Image)
set_display_font (WindowID, 16, ‘mono’, ‘true’, ‘false’)
stop ()
dev_set_draw (‘fill’) - 二值化
threshold (Image, Region, 100, 255) - 求取區(qū)域中心
area_center (Region, AreaRegion, RowCenterRegion, ColumnCenterRegion) - 使用橢圓擬合求取區(qū)域角度
orientation_region (Region, OrientationRegion)
dev_display (Region)
disp_message (WindowID, ‘Center Row: ’ + RowCenterRegion′.5′,′window′,20,10,′white′,′false′)dispmessage(WindowID,′Area:′+AreaRegion+′pixel′,′window′,20,300,′white′,′false′)dispmessage(WindowID,′CenterColumn:′+ColumnCenterRegion'.5', 'window', 20, 10, 'white', 'false') disp_message (WindowID, 'Area: ' + AreaRegion + ' pixel', 'window', 20, 300, 'white', 'false') disp_message (WindowID, 'Center Column: ' + ColumnCenterRegion′.5′,′window′,20,10,′white′,′false′)dispm?essage(WindowID,′Area:′+AreaRegion+′pixel′,′window′,20,300,′white′,′false′)dispm?essage(WindowID,′CenterColumn:′+ColumnCenterRegion’.5’, ‘window’, 60, 10, ‘white’, ‘false’)
disp_message (WindowID, ‘Orientation: ’ + OrientationRegion$’.3’ + ’ rad’, ‘window’, 60, 300, ‘white’, ‘false’)
dev_set_color (‘gray’)
disp_cross (WindowID, RowCenterRegion, ColumnCenterRegion, 15, 0)
disp_arrow (WindowID, RowCenterRegion, ColumnCenterRegion, RowCenterRegion - 60 * sin(OrientationRegion), ColumnCenterRegion + 60 * cos(OrientationRegion), 2)
stop () - 提取邊緣
edges_sub_pix (Image, Edges, ‘canny’, 0.6, 30, 70) - 分割邊緣
segment_contours_xld (Edges, ContoursSplit, ‘lines_circles’, 6, 4, 4)
dev_clear_window ()
dev_set_colored (12)
dev_display (ContoursSplit)
stop ()
dev_open_window (0, round(Width / 2), (535 - 225) * 2, (395 - 115) * 2, ‘black’, WindowHandleZoom)
dev_set_part (round(115), round(225), round(395), round(535))
set_display_font (WindowHandleZoom, 18, ‘mono’, ‘true’, ‘false’)
count_obj (ContoursSplit, NumSegments)
dev_display (Image)
NumCircles := 0
RowsCenterCircle := []
ColumnsCenterCircle := []
disp_message (WindowHandleZoom, 'Circle radii: ', ‘window’, 120, 230, ‘white’, ‘false’)
dev_set_window (WindowHandleZoom)
dev_close_window ()
dev_set_part (0, 0, Height - 1, Width - 1)
dev_update_window (‘on’)
處理思路
這個例子是主要講解了使用xld邊緣擬合測量圓的大小與相對位置的例子。
后記
大家有什么問題可以向我提問哈,我看到了第一時間回復,希望在學習的路上多多結交良師益友。
總結
以上是生活随笔為你收集整理的HALCON示例程序measure_metal_part_first_example.hdev通过拟合边缘进行尺寸测量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bzoj1051[kosaraju算法]
- 下一篇: efi文件错误服务器崩溃,电脑故障分析: