1.Halcon测量有两种方式,
一种是对点云模型处理。对点云(x,y,z)做连通域分割,或使用数组排序处理的方式。
对深度图X,Y,Z的处理。本文重点讲解将深度图拆分成X,Y,Z视差图。将图像从三维转换成二维,以二维图像的处理手段处理三维数据。

一.拆分深度图

二.测距
方法1 二值化方法寻找边缘轮廓线
选中第一部分测量区域二值化,提取边缘轮廓

选中第二部分测量区域二值化,提取边缘轮廓


方法2:Canny算法寻找边缘轮廓线

edges_sub_pix (ImageReduced1,//输入图像
Edges2,//输出区域
'canny', //Canny算法
1,//高斯滤波参数
20, //低阈值
40//高阈值
)12345678
边缘检测之Canny算法详解
方法3:将轮廓线拟合成直线,测距


gen_contour_region_xld (Regions, Contours, 'border')input: 1. Regions //输入区域2. 'border'//区域外边界Output:3. Contours//输出轮廓crop_contours_xld (Contours, CroppedContours, R1[0]+2, R1[1]+2, R1[2]+2, R1[3]-2, 'false')用矩形裁剪轮廓
Input:4. Contours//输入的轮廓5. R1[0]+2, R1[1]+2, R1[2]+2, R1[3]-2//裁剪轮廓的矩形对角线坐标6. 'false' //裁剪的是闭合区域则设置为’true’,但轮廓线设置为’false’7. concat_obj (Contours1, Contours2, ObjectsConcat)将两个区域,数组,轮廓线…合并到一个数组中。
input: Contours1, Contours2
output: ObjectsConcat
fit_line_contour_xld (Edges2, 'tukey', -1, 0, 5, 2, RowBegin2, ColBegin2, RowEnd2, ColEnd2, Nr1, Nc1, Dist1)用线段近似XLD轮廓
Inpute:8. Edges2 //输入轮廓9. 'tukey' //线拟合算法 加权“最小二乘”线拟合10. 用于计算的最大轮廓点数(所有点为-1)11. 拟合时忽略轮廓开始和结束点的数量。12. 最大迭代次数6.13. RowBegin2 //线段的起始点的行坐标。14. ColBegin2 //线段的起始点的列坐标。15. RowEnd2 //线段的终止点的行坐标。10 ColEnd2 //线段的终止点的列坐标。16. Nr1 //线段法向量的行坐标17. Nc1 //线段法向量的列坐标13.Dist1 //直线参数:直线到原点的距离1234567891011121314151617181920212223242526272829303132333435
三.高度差计算
1.视差图的概念:同一颜色的区域深度相同
2.在高度z视差图上截取两部分区域,计算区域的平均值即刻代表区域高度。



转载自:https://blog.csdn.net/weixin_41405284/article/details/107052105
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

