Halcon三维测量(4):点云图转深度图+点云滤波(补洞)+断线拟合 您所在的位置:网站首页 3D图转2D图圆弧是线段怎样变成弧线 Halcon三维测量(4):点云图转深度图+点云滤波(补洞)+断线拟合

Halcon三维测量(4):点云图转深度图+点云滤波(补洞)+断线拟合

2023-12-16 21:20| 来源: 网络整理| 查看: 265

对于三维测量的套路,都是将图像转成二维进行测量和处理 在这里插入图片描述我仍然以这个开关检测项目为例,开关点云有x,y,z,三个空间坐标如果对这个三维点云直接处理,有一个思路我提供给大家,将点云模型完全调平,然后针对x,y,z其中一个坐标进行测量,其实这种思路也是将三维图转为平面。 一.点云图转深度图+点云滤波 本篇着重讲解如何将点云模型转为深度图的思路。 1.将点云模型拆分成x,y,z三个数组,这里的数据可以自动清空,具体请补充一下数据存储,堆和栈的内容。在这里插入图片描述 2.这里提出一个手法,将点云数据拆分成三个数组之后,有很多点事有小数位的,这里为了提高精度,会把数组中的坐标乘以10或100,视情况而定,如此图像的细节会更加清晰,可以理解为拉伸图像。 x:=point_coord_x1*10 y:=point_coord_y1*10

3.之后观察调平的点云,以x,y为Row和Column,z为灰度值,建立深度图。此时可以将图像当成二维图像处理。 在这里插入图片描述 4.细心地朋友可能会发现,这个生成的深度图是有孔洞的。这与物料的反光或者遮挡有关,如下是缺失点云数据的点云模型。 在这里插入图片描述 如下是缺失点的深度图 在这里插入图片描述 5.刚说到,可以对深度图运用二维的处理,这里分别运用中值滤波,高斯滤波,均值滤波对图像进行处理,填充孔洞。 在这里插入图片描述

二.断线拟合

这里讲的是二维的处理手法

有时候直接调用提取边缘的算子呢,提取出的边缘线存在断线,或交叉线,对于边缘拟合造成了很大的麻烦,这里点出断线拟合的思路。 在这里插入图片描述 1.将线段打散成点 2.对点基于行或列排序

注意这里排序很重要,不排序拟合直线时会出现交叉点 在这里插入图片描述

排序后效果图 在这里插入图片描述

3.拟合线

edges_sub_pix (ImageReduced1, Edges1, 'canny', 1,5, 25) count_obj (Edges1, Number1) for Idle:=1 to Number1 by 1 select_obj (Edges1, EdgeContour, Idle) *把线变为点 get_contour_xld(EdgeContour, RowS,ColumnS) Row1:=[Row1,RowS] Column1:=[Column1,ColumnS] endfor tuple_sort_index (Row1, Indices) tuple_length(Row1,Length) NewRow:=[] NewColumn:=[] if(Length>=1) *方法1 NewRow:=subset(Row1,Indices) NewColumn:=subset(Column1,Indices)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有