一、一维测量
定义: 一个方向的度量
测量区:测量矩形 测量弧形
原理:灰度投影+求导数
正负:沿着剖面线的方向由暗到亮为正 由亮到暗为负
实现流程:采集图像=》生成矩形测量区域(弧形)=》边缘测量(边缘对测量)=》可视化显示=》关闭测量
生成测量矩形: gen_measure_rectangle2
边缘测量: measure_pos
边缘对测量: measure_pairs
关闭测量: close_measure
可视化显示:
生成多边形xld轮廓 gen_contour_polygon_xld
显示带方向的矩形 disp_rectangle2
显示箭头 disp_arrow
转到世界坐标系,计算实际尺寸
像素转到世界坐标系 image_points_to_world_plane
移动坐标系 set_origin_pose
矩形测量可视化显示原理:
测量定位跟随:
点的仿射变换 affine_trans_point_2d
像素点的仿射变换 affine_trans_pixel
求直线与水平轴角度 line_orientation
求两个点距离 distance_pp
求直线与水平轴角度 angle_lx
圆弧测量(测量弧形):
生成测量弧形: gen_measure_arc
生成圆弧xld轮廓 gen_circle_contour_xld
求两个点距离 distance_pp
求直线与水平轴角度 angle_lx
获得椭圆点 get_points_ellipse
显示圆弧 disp_arc
圆弧可视化显示原理:
二维测量
定义:图像俩个方向的度量
本质:求导数---卷及运算(高通滤波-锐化)
xld:可扩展的线性描述
流程:
1.标定求内外参
2.采集图像
3.定位跟随
4.二维测量
求区域边界 输入区域 输出区域 边界内外选择
boundary (RegionAffineTrans, RegionBorder, 'inner')
提取边缘亚像素 输入图像 输出轮廓 算法 平滑系数 最小阈值
edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40)
拟合成矩形 输入轮廓 最小二乘法 拟合点的最大数量 闭合距离阈值 忽略的最大点数 迭代次数 剪切因子(越小,去掉离群值远的点越多)
fit_rectangle2_contour_xld (SelectedXLD, 'tukey', -1, 0, 0, 3, 2, Row, Column, Phi, Length1, Length2, PointOrder)
5.转世界坐标,计算显示
image_points_to_world_plane
canny算法原理:
1.高斯平滑
2.sobel求一阶导数
3.非极大值抑制
4.高低阈值控制
区域联合方式
1.近邻联合 union_adjacent_contours_xld
2.共圆联合 union_cocircular_contours_xld
3.共线联合 union_collinear_contours_xld
4.闭合联合 union2_closed_contours_xld
拟合方式
1.直线拟合 fit_line_contour_xld
2.圆拟合 fit_circle_contour_xld
3.椭圆拟合 fit_ellipse_contour_xld
4.矩形拟合 fit_rectangle2_contour_xld
轮廓分割
*轮廓分割 输入轮廓 输出分割后的轮廓 线圆选择 平滑 阈值(值越大分割后的轮廓越少)
segment_contours_xld (SelectedContours, ContoursSplit, 'lines_circles', 5, 10, 8)
获得轮廓的属性
获得轮廓全局属性 get_contour_global_attrib_xld
求具有回归属性的轮廓 regress_contours_xld
求回归属性轮廓的属性值 get_regress_params_xld
轮廓特征筛选 select_contours_xld
卡尺测量
一维测量+二维测量+定位+跟随+标定综合
标定--》采集-》定位--》创建卡尺模型添加卡尺设置参数(参考位置)-》跟随--》测量--》获得结果-》清除
创建卡尺模型 create_metrology_model
设置宽高 set_metrology_model_image_size
添加直线卡尺 add_metrology_object_line_measure
设置模型参数 set_metrology_model_param
定位跟随 align_metrology_model
卡尺测量 apply_metrology_model
获得拟合后轮廓 get_metrology_object_result_contour
获得拟合后参数结果 get_metrology_object_result
获得测量矩形 get_metrology_object_measures
求两条线角度 angle_ll
求直线交点 intersection_lines
求直线角度 line_orientation
清除卡尺 clear_metrology_object
清除卡尺模型 clear_metrology_model
设置卡尺参数注意:
设置卡尺参数拟合实例 set_metrology_object_param
'num_instances' :最大实例个数
'measure_transition' 亮暗选择,直选所有正边,负边(uniform)
'num_measures' 矩形个数
'measure_distance' 测量区域间的距离
方向问题:对于圆,矩形等封闭的是由内到外
对于直线:面向直线,起点指向终点,从左往右