Halcon3D篇-3D预处理,滤波,点云筛选

前言

由于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模型后可以通过对点云的欧式距离进行点云集的拆分。

二:灰度筛选与滤波

csharp 复制代码
*读取图像
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个点的距离)。然后根据我们需要的点云数进行筛选即可

csharp 复制代码
connection_object_model_3d (ObjectModel3D, 'distance_3d', 5, ObjectModel3DConnected)

select_object_model_3d (ObjectModel3DConnected, 'num_points', 'and', 100, 1000000000, ObjectModel3DSelected)

结尾

通常情况下说,灰度二值化将要测量的平面选取出来,然后进行均值滤波,让平面变得光滑,去除噪点,在通过选取ROI去除边缘点云采样不理想的区域。基本可以完成对点云的预处理了。最后根据点云间的距离,还可以进一步的去除噪点。到最后基本就可以完成对点云的处理,方式适用于大部分3D检测和缺陷检测的项目。但是对倾斜面无需抓取项目仍有待考究

相关推荐
恬静的小魔龙8 小时前
【SKFramework框架核心模块】3-2、音频管理模块
3d·unity·编辑器·游戏引擎·音视频
goomind9 小时前
深度学习实战人脸识别
深度学习·计算机视觉·人脸识别·pyqt5·facenet·mtcnn·人脸定位
Eric.Lee202110 小时前
数据集-目标检测系列- 昙花(昙花一现) 检测数据集 epiphyllum >> DataBall
算法·yolo·目标检测·计算机视觉·昙花一现·昙花检测
jndingxin10 小时前
OpenCV相机标定与3D重建(3)校正鱼眼镜头畸变的函数calibrate()的使用
opencv·3d
hongel11011 小时前
基于机器视觉的表面缺陷检测
数码相机
前端Hardy11 小时前
HTML&CSS:比赛记分卡
前端·javascript·css·3d·html
只怕自己不够好12 小时前
《OpenCV 中阈值处理方法全解析及应用实例》
计算机视觉
程序员爱德华13 小时前
计算机视觉 9-16章 (硕士)
计算机视觉
威化饼的一隅13 小时前
【多模态】Flamingo模型技术学习
人工智能·深度学习·计算机视觉·大模型·多模态·多模态模型·flamingo
SEVEN-YEARS16 小时前
使用OpenCV实现图像拼接
人工智能·opencv·计算机视觉