Halcon测量基础知识入门

描述

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)

测量结果:

HALCON

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





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分