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

    文章

    3034

    浏览量

    115844
  • 数组
    +关注

    关注

    1

    文章

    420

    浏览量

    27522
  • 点云
    +关注

    关注

    0

    文章

    59

    浏览量

    4103

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TOFcam-635:小型化3D相机的技术解析

    TOFcam-635:小型化3D相机的技术解析 在当今科技飞速发展的时代,3D相机技术在众多领域展现出巨大的应用潜力。今天要为大家介绍一款名为TOFcam - 635的小型化3D相机,它凭借独特
    的头像 发表于 05-10 13:50 294次阅读

    倍加福基于双目视觉技术的SmartRunner 3D传感器介绍

    当我们迈入自动化的“三维时代”,SmartRunner Explorer 3D不仅能生成清晰的2D图像,还可输出高精度的3D数据。
    的头像 发表于 04-08 10:39 450次阅读
    倍加福基于双目视觉技术的SmartRunner <b class='flag-5'>3D</b>传感器介绍

    常见3D打印材料介绍及应用场景分析

    3D打印材料种类丰富,不同材料性能差异明显。本文介绍PLA、ABS、PETG等常见3D打印材料的特点与应用场景,帮助读者了解3D打印用什么材料更合适,为选材提供基础参考。
    的头像 发表于 12-29 14:52 1102次阅读
    常见<b class='flag-5'>3D</b>打印材料介绍及应用场景分析

    iDS iToF Nion 3D相机,开启高性价比3D视觉新纪元!

    一、友思特新品 友思特 iDS uEye Nion iTof 3D相机 120 万像素的卓越空间分辨率与可靠的深度精度相结合—即使在极具挑战性的环境中也能确保获取精细的 3D 数据。 其外壳达到
    的头像 发表于 12-15 14:59 670次阅读
    iDS iToF Nion <b class='flag-5'>3D</b>相机,开启高性价比<b class='flag-5'>3D</b>视觉新纪元!

    iSUN3D即将推出单组分弹性树脂3D打印解决方案!

    iSUN3D将在Formnext 2025发布单组分弹性树脂3D打印方案,覆盖设计到交付全流程,解决柔弹性制造成本与效率痛,现场可体验高速打印与限量礼品。
    的头像 发表于 11-17 11:45 996次阅读
    iSUN<b class='flag-5'>3D</b>即将推出单组分弹性树脂<b class='flag-5'>3D</b>打印解决方案!

    使用Otsu阈值算法灰度图像二值化

    Otsu 算法是由日本学者OTSU于1979年提出的一种对图像进行二值化的高效算法,又称“最大类间方差法”。当我们对一个象进行二值化操作的时候,需要根据一项灰度阈值来判决每个像素应该被视作纯黑
    发表于 10-28 06:49

    微纳尺度的神笔——双光子聚合3D打印 #微纳3D打印

    3D打印
    杨明远
    发布于 :2025年10月25日 13:09:29

    玩转 KiCad 3D模型的使用

    “  本文将带您学习如何将 3D 模型与封装关联、文件嵌入,讲解 3D 查看器中的光线追踪,以及如何使用 CLI 生成 PCBA 的 3D 模型。  ”   在日常的 PCB 设计中,
    的头像 发表于 09-16 19:21 1.2w次阅读
    玩转 KiCad <b class='flag-5'>3D</b>模型的使用

    索尼与VAST达成3D业务合作

    近日,索尼空间现实显示屏与VAST旗下的3D大模型Tripo AI正式宣布达成业务合作:双方围绕裸眼3D显示技术、AI驱动的3D内容生成与交互创新展开深度协同,致力于通过索尼空间现实
    的头像 发表于 08-28 17:32 1851次阅读

    AD 3D封装库资料

     AD  PCB 3D封装
    发表于 08-27 16:24 8次下载

    3D打印能用哪些材质?

    3D打印的材质有哪些?不同材料决定了打印效果、强度、用途乃至安全性,本文介绍目前主流的3D打印材质,帮助你找到最适合自己需求的材料。
    的头像 发表于 07-28 10:58 4580次阅读
    <b class='flag-5'>3D</b>打印能用哪些材质?

    TechWiz LCD 3D应用:FFS仿真

    建模任务 堆栈结构 建模过程 2.1使用TechWiz Layout绘制各层掩模版平面 2.2创建堆栈结构,并生成3D结构 2.3 使用TechWiz LCD 3D进行各项参数计算 3
    的头像 发表于 07-14 14:08 1017次阅读
    TechWiz LCD <b class='flag-5'>3D</b>应用:FFS仿真

    英伦科技10.1英寸裸眼3D数码相框升级了,玩转AI文生太cool了!

    此次升级AI内容生成与裸眼3D显示深度结合,解决了传统3D内容制作成本高的痛,使普通用户也能轻松创作个性化立体图像。配合无线传输、智能转化等成熟功能,该产品已成为集科技、艺术与情感
    的头像 发表于 07-03 11:31 13.5w次阅读
    英伦科技10.1英寸裸眼<b class='flag-5'>3D</b>数码相框升级了,玩转AI文生<b class='flag-5'>图</b>太cool了!

    如何将FlexRay信号转为Can信号

    本篇教程源于一位客户的真实需求,想将Flexray信号通过软件转为Can信号,硬件设备有PXI-8517、cDAQ-9188、NI-9862。经过小编验证是可行的,
    的头像 发表于 07-03 09:16 1503次阅读
    <b class='flag-5'>如何将</b>FlexRay信号<b class='flag-5'>转为</b>Can信号

    3D AD库文件

    3D库文件
    发表于 05-28 13:57 6次下载