D測量:
1D測量主要就是拉個框獲取這個框中定義的高頻范圍的臨界點,所測量的范圍比較有限,基于兩點之間的距離。
1D測量主要步驟有:1、自定義測量模型;2、創建測量句柄 ;3、開始測量;4、顯示測量結果;5、清除測量句柄
例子:
halcon代碼:
read_image (Image, 'D:/Halcon-WorkSpaces/Halcon-Demo/測量/卡尺測量/1D測量/Image/test1.png')
rgb1_to_gray (Image, GrayImage)
get_image_size (GrayImage, Width, Height)
*計算尺子與像素點大小的關系
dev_set_draw ('margin')
*選則測量區域
draw_rectangle2 (3600, Row, Column, Phi, Length1, Length2)
*顯示測量區域
gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
*創建側臉句柄
gen_measure_rectangle2 (Row, Column, Phi, Length1, Length2, Width, Height, 'nearest_neighbor', MeasureHandle)
*開始測量
measure_pos (GrayImage, MeasureHandle, 1, 30, 'all', 'all', RowEdge, ColumnEdge, Amplitude, Distance)
*顯示抓取的點
gen_cross_contour_xld (Cross, RowEdge, ColumnEdge, 20, 0.5)
*顯示測量結果
set_display_font (3600, 50, 'mono', 'true', 'false')
disp_message (3600, '測量長度:'+Distance+' Pixle', 'window', 12, 12, 'green', 'false')
*清除測量句柄
close_measure (MeasureHandle)
測量結果:
2D測量:
2D測量又稱之為幾何測量,可根據幾何模型對物體進行較為全面的測量。
2D測量的步驟有:1、創建測量句柄;2、設置圖片相對大小到句柄;3、定義測量模型;4、將測量模型添加到句柄;5、開始測量;6、擬合被測模型;7、顯示測量結果;8、清除測量句柄。
例子: 被測物:
read_image (Image, 'D:/Halcon-WorkSpaces/Halcon-Demo/測量/卡尺測量/2D測量/Image/test2.png')
rgb1_to_gray (Image, GrayImage)
*創建幾何測量句柄
create_metrology_model (MetrologyHandle)
*設置句柄與圖像的像素關系
get_image_size (Image, Width, Height)
set_metrology_model_image_size (MetrologyHandle, Width, Height)
*自定義橢圓模型
draw_ellipse (3600, Row, Column, Phi, Radius1, Radius2)
*添加橢圓模型
*卡邊尺長
MeasureLength1:=30
*卡邊尺寬
MeasureLength2:=5
add_metrology_object_ellipse_measure (MetrologyHandle, Row, Column, Phi, Radius1, Radius2, 30, 5, 1, 30, [], [], Index)
*顯示卡邊尺模型
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row, Column)
*開始測量
apply_metrology_model (GrayImage, MetrologyHandle)
*顯示提取到的輪廓線
get_metrology_object_result_contour (Contour, MetrologyHandle, 'all', 'all', 1.5)
*擬合,計算輪廓結果
fit_ellipse_contour_xld (Contour, 'fitzgibbon', -1, 0, 0, 200, 3, 2, Row1, Column1, Phi1, Radius1, Radius2, StartPhi, EndPhi, PointOrder)
*顯示結果
*橢圓的中心點
gen_cross_contour_xld (Cross, Row1, Column1, Radius1*2, Phi1)
set_display_font (3600, 30, 'mono', 'true', 'false')
disp_message (3600, ['橢圓中心坐標:('+Row1+','+Column1+')','橢圓斜率:'+Phi1,'橢圓最大半長:'+Radius1,'橢圓最小半長:'+Radius2], 'window', 12, 112, 'green', 'false')
*清除句柄
clear_metrology_model (MetrologyHandle)
測量結果:
審核編輯:劉清
-
HALCON
+關注
關注
16文章
64瀏覽量
27243
原文標題:Halcon測量入門
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論