halcon10_测量_1_一维测量(找边测量边的距离)

流程

halcon10_测量_1_一维测量(找边测量边的距离)_第1张图片

代码

* 1读取图片 参数(输出参数Image,输入参数图片路径)
read_image(Image, 'printer_chip/printer_chip_01')
* 3 画一个矩形,再将 151.674, 815.649, rad(1.62993), 101.905, 42.8094 参数的值,
* 替换gen_measure_rectangle2中前5个参数值,这样就有测量矩形了
gen_rectangle2 (ROI_0, 151.674, 815.649, rad(1.62993), 101.905, 42.8094)
* 4 获取 图像的尺寸,用Width, Height参数替换gen_measure_rectangle2中的512,512
get_image_size (Image, Width, Height)

* 2 绘制一个测量矩形(边缘提取算法)
* 参数 (Row, Column, Phi, Length1, Length2, Width, Height, Interpolation : MeasureHandle)
* 矩形的中心在(Row,Column),Phi为矩形主轴的角度,Lenth1和Lenth2为两轴的长度,即矩形两边长度的一半
* 这个算子要我们告诉它矩形的参数Row, Column,和图像的尺寸,最后返回一个MeasureHandle测量句柄
* 矩形的参数怎么来,我们不确定,所以可以先画一个矩形,
gen_measure_rectangle2 (151.674, 815.649, rad(1.62993), 101.905, 42.8094, Width, Height, 'nearest_neighbor', MeasureHandle)
* 5 测试
* 输入参数,要传图像Image,测量句柄MeasureHandle,边缘弧度的预值Threshold(30),
* 转变(过渡)Transition(all全部,positive正向,negative负向)
* 选择Select(all,是全部,first第一个,last最后一个)
* 输出参数 RowEdge,ColumnEdge 边的坐标(点),这两个都是数组,两个边就有两个X和两个Y, X在RowEdge中,Y在ColumnEdge中
* 灰度值差异Amplitude,距离Distance
measure_pos (Image, MeasureHandle, 1, 30, 'all', 'all', RowEdge, ColumnEdge, Amplitude, Distance)
* 6 生成十字叉,生成交叉形状的XLD轮廓
* 输出是一个轮廓,输入是点的坐标,
* 参数列表:
* Cross(out):生成XLD轮廓
* Row(in):输入点集的行坐标
* Col(in):输入点集的列坐标,Col元组的个数与Row元组的个数相同
* Size(in):十字形长度,长度大于等于0,要想看清楚可以设置大点
* Angle(in):十字形方向
gen_cross_contour_xld (Cross, RowEdge, ColumnEdge, 6, 0.785398)

画一个矩形

halcon10_测量_1_一维测量(找边测量边的距离)_第2张图片鸟叔机器视觉halcon10_测量_1_一维测量_哔哩哔哩_bilibili

你可能感兴趣的:(机器视觉,笔记,经验分享,学习)