少有人走的路

勇哥的工业自动化技术网站

Halcon三维测量(1):基于深度图的测量

1.Halcon测量有两种方式,

  • 一种是对点云模型处理。对点云(x,y,z)做连通域分割,或使用数组排序处理的方式。

  • 对深度图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


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864