赞
踩
由于3D相机采集到的数据通常通过Tiff格式的深度图进行显示或者保存。
深度图与模型的互转可以访问另一篇博客:https://blog.csdn.net/m0_51559565/article/details/135362674
关于3D相机的数据采集,可以访问我们另一篇关于LMI3D相机SDK的二次开发:
https://blog.csdn.net/m0_51559565/article/details/134404394
常见的3D数据通常以Z轴作为灰度值的深度图的形式出现。所以我们可以根据2D图的特性,对2D图先进行灰度二值化筛选,图像增强,滤波等方式提取特征点。转换为3D模型后可以通过对点云的欧式距离进行点云集的拆分。
*读取图像 read_image (Image, 'E:/UpperComputer/3D检测/点云筛选和滤波/XYZ彩色融合图.tiff') *拆分3通道,对Z通道进行单独处理 decompose3 (Image, x, y, z) *通过选取灰度值,直接找到所需的区域 threshold (z, Regions, 114.83, 145.83) *将区域进行裁剪 reduce_domain (z, Regions, ImageReduced) crop_domain (ImageReduced, ImagePart) *通过ROI的形式剔除边缘不适合的点云 gen_rectangle1 (ROI_0, 145.41, 81.8859, 509.72, 397.831) reduce_domain (ImagePart, ROI_0, ImageReduced1) crop_domain (ImageReduced1, ImagePart1) *滤波。可以去除由于相机过曝造成的点云 *mean_image (ImagePart1, ImageMean, 9, 9) *median_image (ImagePart1, ImageMedian, 'circle', 1, 'mirrored') gauss_filter (ImagePart1, ImageGauss, 5)
原始图像
灰度二值化处理,与ROI拆分。在实际处理中,为了可以快速的完成对特征区域的匹配,通过会直接通过ROI的形式,当然不局限于还有,例如模板匹配,圆形测量等常用的2D图像提取方法。
在进行完预处理后,通常点云的去噪效果非常好,或者几何完成的情况。但是对于部分特殊情况。例如,由于相机过曝或者强反光的金属表面造成的点云波动,通常这类型的波动情况往往点云数少,高度差距小,所以比较难发现。
通常可以直接使用点云欧式距离。例如下面,对点云欧式距离大于5的点云进行区分(点云间的距离等于5个点的距离)。然后根据我们需要的点云数进行筛选即可
connection_object_model_3d (ObjectModel3D, 'distance_3d', 5, ObjectModel3DConnected)
select_object_model_3d (ObjectModel3DConnected, 'num_points', 'and', 100, 1000000000, ObjectModel3DSelected)
通常情况下说,灰度二值化将要测量的平面选取出来,然后进行均值滤波,让平面变得光滑,去除噪点,在通过选取ROI去除边缘点云采样不理想的区域。基本可以完成对点云的预处理了。最后根据点云间的距离,还可以进一步的去除噪点。到最后基本就可以完成对点云的处理,方式适用于大部分3D检测和缺陷检测的项目。但是对倾斜面无需抓取项目仍有待考究
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。