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