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)

 

posted on 2019-07-30 10:50  暗夜初雪  阅读(1963)  评论(0编辑  收藏  举报

导航