0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将灰度图转为3D点云

新机器视觉 来源:古月居 作者:古月居 2022-06-13 11:11 次阅读

1. 如何将灰度图转为3D点云

这里所说的灰度图转为3D点云,其实是将灰度图像每个像素的行列坐标作为3D点云的X,Y坐标,像素的灰度值(0—255)作为三维点的Z坐标。

简单说就是将一张灰度图像拆成了三个数组:X,Y,Z,然后将这三个数组转为点云。

524a66d4-ea59-11ec-ba43-dac502259ad0.png

halcon代码:


dev_get_window (WindowHandle)read_image (Image, '1.bmp')rgb1_to_gray (Image, GrayImage)
*获取图像尺寸get_image_size (GrayImage, Width, Height)gen_rectangle1 (Rectangle, 0, 0, Height-1,Width-1)*从区域生成所有的像素坐标get_region_points(Rectangle, X, Y)*读取图像的全部像素get_grayval(GrayImage, X, Y, Z)*创建3D对象模型gen_object_model_3d_from_points(X, Y, Z, ObjectModel3D)*显示3D模型visualize_object_model_3d (WindowHandle,ObjectModel3D , [], [], [], [], [], [], [], PoseOut)

2. 创建一张深度图

实际上深度图是使用X,Y,Z三个数组的数据创建来的;

X,Y是作为图像的行列坐标,Z是实数(表示的是深度/高度),而不是灰度,因为灰度值是0——255之间的整数;

Z的值是能够返回高度信息传感器获取到的,比如点激光、线激光,结构光等。

下面是自己赋值得到的一张深度图。

5285209e-ea59-11ec-ba43-dac502259ad0.png


dev_get_window (WindowHandle)read_image (Image, '2.bmp')rgb1_to_gray (Image, GrayImage)*获取图像尺寸get_image_size (GrayImage, Width, Height)gen_rectangle1 (Rectangle, 0, 0, Height-1,Width-1)*从区域生成所有的像素坐标get_region_points(Rectangle, X, Y)*读取图像的全部像素get_grayval(GrayImage, X, Y, Z)
*改变Z的值Z:=Z-256
*对在Rectangle2区域中的像素进行赋值gen_rectangle1 (Rectangle2, 101, 101, 140,140)get_region_points(Rectangle2, X2, Y2)Z[X2*400+Y2]:=2.4
*创建一张类型为'real'的图像gen_image_const (ImageConst, 'real', Width, Height)*使用X,Y,Z给图像赋值Aset_grayval (ImageConst, X, Y, Z)

3. 深度图转点云、点云转深度图

接下来我们加载一张真正的深度图,它是由线激光采集数据得到的,保存格式为tiff文件;

这是截取了其中一段图像,扫描的是电路板上一些元器件和焊点的高度。

52b0add6-ea59-11ec-ba43-dac502259ad0.png


read_image (Image, '3DImage1.tiff')get_image_size (Image, Width, Height)
*1. 这一步是将灰度图转为了X,Y,Z三个数组,当然也就可以转为三位点云了*获取图像尺寸get_image_size (Image, Width, Height)gen_rectangle1 (Rectangle, 0, 0, Height-1,Width-1)*从区域生成所有的像素坐标get_region_points(Rectangle, X, Y)*读取图像的全部像素get_grayval(Image, X, Y, Z)
*2. 再将X,Y,Z这三个数组转回深度图,实际应用中,线机光返回的数据就是Z数组,X,Y数组由自己创建*创建一个空图像,注意type选择'real'gen_image_const (ImageConst, 'real', Width, Height)*然后使用数组填充图像,这样就完成了set_grayval (ImageConst, X, Y, Z)
*3. 接下来就可以对深度图做进一步处理了。。。

4. 代码和图片下载地址

https://download.csdn.net/download/weixin_38566632/19765495


	
		审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 3D
    3D
    +关注

    关注

    9

    文章

    2860

    浏览量

    107310
  • 数组
    +关注

    关注

    1

    文章

    414

    浏览量

    25905
  • 点云
    +关注

    关注

    0

    文章

    58

    浏览量

    3786

原文标题:Halcon 3D点云和深度图的相互转化

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    XTR300如何将4~20mA信号转为0~3V的信号?

    XTR300如何将4~20mA信号转为0~3V的信号?
    发表于 08-06 06:36

    裸眼3D笔记本电脑——先进的光场裸眼3D技术

    随着科技的不断进步,裸眼3D技术已经不再是科幻电影中的幻想。如今,英伦科技裸眼3D笔记本电脑这一前沿科技带到了我们的日常生活中。无论你是专业的3D模型设计师,还是希望在视频播放和模型
    的头像 发表于 07-16 10:04 456次阅读

    3D建模的重要内容和应用

    3D建模是一种技术,通过计算机软件创建虚拟三维模型,模拟现实世界中的物体或场景。这项技术广泛应用于建筑设计、电影制作、游戏开发、工程仿真等领域。下面古河科技介绍一些与3D建模相关的
    的头像 发表于 06-21 14:48 551次阅读

    3D建模的特点和优势都有哪些?

    3D建模是一种用于创建三维对象的过程,它在许多领域都有着广泛的应用,包括动画、游戏开发、建筑设计、工程以及制造业等。下面古河科技介绍一些关于3D建模的内容详情,包括它的特点、优势以
    的头像 发表于 05-13 16:41 2247次阅读

    PADS2.7,如何将3D封装与PCB封装绑定,然后再PCB设计时可直接调用?

    PADS2.7,如何将3D封装与PCB封装绑定,然后再PCB设计时可直接调用?
    发表于 05-06 17:07

    新质生产力探索| AICG浪潮下的3D打印与3D扫描技术

    随着技术的不断进步,3D打印和3D扫描已经成为现代制造业和设计领域的重要工具。为了深入探讨这些技术的最新发展和应用前景。蘑菇创客空间举办了以《AICG浪潮下的新质生产力》为主题的开放夜活动,邀请
    的头像 发表于 04-01 09:28 385次阅读

    基于深度学习的方法在处理3D进行缺陷分类应用

    背景部分介绍了3D应用领域中公开可访问的数据集的重要性,这些数据集对于分析和比较各种模型至关重要。研究人员专门设计了各种数据集,包括用于3D形状分类、
    的头像 发表于 02-22 16:16 1004次阅读
    基于深度学习的方法在处理<b class='flag-5'>3D</b><b class='flag-5'>点</b><b class='flag-5'>云</b>进行缺陷分类应用

    友思特C系列3D相机:实时3D云图像

    3D相机
    虹科光电
    发布于 :2024年01月10日 17:39:25

    让协作更便捷,3D工业相机获UR+认证

    本次获得UR+认证的3D机器视觉硬件产品主要为适用于手眼协同的小型化3D工业相机PS及FS系列,紧凑轻巧,高精度大视野,可实时采集三维空间
    的头像 发表于 01-05 17:18 948次阅读
    让协作更便捷,<b class='flag-5'>图</b>漾<b class='flag-5'>3D</b>工业相机获UR+认证

    两种应用于3D对象检测的深度学习方法

    是标准 RGB 图像与其关联的“深度”的组合,目前由 Kinect 或英特尔实感技术使用。3D 数据可以对传感器周围环境进行丰富的空间表示,并可应用于机器人、智能家居设备、无人驾驶汽车或医学成像。
    的头像 发表于 01-03 10:32 915次阅读
    两种应用于<b class='flag-5'>3D</b>对象检测的<b class='flag-5'>点</b><b class='flag-5'>云</b>深度学习方法

    基于3D的多任务模型在板端实现高效部署

    对于自动驾驶应用来说,3D 场景感知至关重要。3D数据就是具有3D特征的数据。一方面,3D
    的头像 发表于 12-28 16:35 1374次阅读
    基于<b class='flag-5'>3D</b><b class='flag-5'>点</b><b class='flag-5'>云</b>的多任务模型在板端实现高效部署

    通过异步获取的图像与LiDAR对准的方案

    实现图像与其重建对象之间的精确2D-3D对应关系对于准确的图像定位至关重要,一种有前景的方法涉及在图像和激光雷达平面之间建立对应关系,激光雷达平面可以被视为来自激光雷达地图的重建对象的替代
    发表于 12-12 14:46 698次阅读

    提供3D打印材料与解决方案,助力3D打印产业发展

    提供3D打印材料与解决方案,助力3D打印产业发展
    的头像 发表于 12-12 11:12 515次阅读

    3D 封装与 3D 集成有何区别?

    3D 封装与 3D 集成有何区别?
    的头像 发表于 12-05 15:19 982次阅读
    <b class='flag-5'>3D</b> 封装与 <b class='flag-5'>3D</b> 集成有何区别?

    当芯片变身 3D系统,3D异构集成面临哪些挑战

    当芯片变身 3D 系统,3D 异构集成面临哪些挑战
    的头像 发表于 11-24 17:51 806次阅读
    当芯片变身 <b class='flag-5'>3D</b>系统,<b class='flag-5'>3D</b>异构集成面临哪些挑战