halcon深度图,平面拟合后,高度矫正

本文介绍了使用Halcon进行深度图处理时,如何通过平面拟合来实现点云矫正,详细阐述了不考虑Z轴(Oz)的矫正过程,为计算机视觉和图像处理领域的读者提供了关键的实践指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dev_clear_window()
dev_open_window (0, 0, 545, 400, 'black', WindowHandle)
xResolution:=0.04
yResolution:=0.04
read_image (Image, 'E:/SMT电容虚焊测高/Test_Pic/12-3测试图/12-03-15-34-58-155.tif')
*未滤波的深度图转成灰度图
threshold (Image, Region, 0, 20)
min_max_gray (Region, Image, 0, Min, Max, Range)
*基于深度图的最大、最小值,对深度图转换成灰度图
scale_image_range (Image, ImageScaled, Min, Max)
convert_image_type (ImageScaled, ImageConverted, 'byte')
*本来想通过对单通道real类型的图片采用中值、均值和高斯等传统手段的滤波方式
*但滤波过后的图片全部没有数据
*所以只能采用halcon的三维工具进行滤波
*第一步将深度图转为3D模型
*首先生成x、y方向的映射坐标
get_image_size (Image, Width, Height)
gen_image_surface_first_order (xImageSurface, 'real', 1, 0, 0, 0, 0, Width, Height)
gen_image_surface_first_order (yImageSurface, 'real', 0, 1, 0, 0, 0, Width, Height)
scale_image (xImageSurface, xImageScaled, xResolution, 0)
scale_image (yImageSurface, yImageScaled, yResolution, 0)
*将三张图片合成到三个通道,其实没有实际用处
compose3 (xImageScaled, yImageScaled, Image, MultiChannelImage)
*直接通过三张图生成3D模型
xyz_to_object_model_3d (xImageScaled, yIma
Hi~ 可私信我了解后再进行下载~ 1.基于halcon算法平台; 2.提供深度图源文件以及解压密码; 3.代码预览: */********************************* * @文档名称: 基于点云的平面拟合。 * @作者: hugo * @版本: 1.1 * @日期: 2021-6-16 * @描述: 该方法支持点云平面拟合以及深度图平面拟合。 **********************************/* read_image (imageReal, './replay_38893_2021-6-7.tif') xResolution:=0.06 yResolution:=0.06 zResolution:=0.001 ScaleFactor:=[xResolution,yResolution,zResolution] rateLowRemove:=0.1 rateHighRemove:=0.1 dev_get_window (WindowHandle) *采样区域1 create_drawing_object_rectangle2 (300, 120, rad(90), 30, 20, DrawID) set_drawing_object_params (DrawID, 'color', 'red') set_drawing_object_params (DrawID, 'line_width', 1) attach_drawing_object_to_window (WindowHandle, DrawID) ......... TransPose := [0,0,d,0,0,0,0] rigid_trans_object_model_3d (SampledObjectModel3D1, TransPose, _SampledObjectModel3D1) rigid_trans_object_model_3d (ObjectModelPlane1, TransPose, _ObjectModelPlane1) create_pose (0, 0, Mean/2, 180, 0, 0, 'Rp+T', 'gba', 'point', Pose1) *visualize_object_model_3d (WindowHandle, [_ObjectModelPlane1,_SampledObjectModel3D1,SampledObjectModel3D2], [], [Pose1], [], ['intensity','lut','lut'], ['&amplitude','sqrt','sqrt'], '', 'Edited by AmazingRobot+ ' , PoseOut) visParamName := ['intensity_1','color_0','color_2','alpha_0'] visParamValue := ['coord_z','red','yellow',0.5] visualize_object_model_3d (WindowHandle, [_SampledObjectModel3D1,SampledObjectModel3D2,_ObjectModelPlane1], [], [], visParamName, visParamValue, 'Edited by AmazingRobot+', [], '', PoseOut) stop () 谢谢您的信任~
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyond951

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值