halcon例程学习 一维测量之弧形边缘


*************************************************************************

*学习例程 measure_arc.hdev 
*date:2019/07/30

*************************************************************************
*读取图像
read_image (Image, 'zeiss1')
dev_close_window ()
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)
get_image_size (Image, Width, Height)

*************************************************************************
*设置弧形
nRow         := 275
nColumn      := 335
nRadius      := 107
nAngleStart  := -rad(55)
nAngleExtent := rad(170)

*nAngleStart+nAngleExtent 弧形长度
*nRow 椭圆中心行坐标
*nColumn 椭圆中心列坐标
*nRadius 椭圆最长轴半径
*nRadius 椭圆最短轴半径
*RowPoint 输出点行坐标
*ColPoint 输出点列坐标

get_points_ellipse (nAngleStart+nAngleExtent, nRow, nColumn, 0, nRadius, nRadius, RowPoint, ColPoint)

*****************************************************************************************************************
*绘制弧形线
dev_set_draw ('fill')
dev_set_color ('green')
dev_set_line_width (1)
*RowPoint 开始点行坐标
*ColPoint 开始点列坐标

disp_arc (WindowHandle, nRow, nColumn, nAngleExtent, RowPoint, ColPoint)

*****************************************************************************************************************
*提取垂直于环形的直边

*获取弧形测量句柄
*10 - 环空半径 <= nRadius
gen_measure_arc (nRow, nColumn, nRadius, nAngleStart, nAngleExtent, 10, Width, Height, 'nearest_neighbor', MeasureHandle)

*提取垂直于矩形或环形弧的直线边缘
*1-高斯平滑
*10-最低边缘振幅
*'all' - 由明-暗,或暗-明
*'all' - 端点选择
*Amplitude - 边缘振幅的边缘

measure_pos (Image, MeasureHandle, 1, 10, 'all', 'all', RowEdge, ColumnEdge, Amplitude, Distance)

close_measure (MeasureHandle)

gen_cross_contour_xld (Cross, RowEdge, ColumnEdge, 60, 0)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM