深度图 + RGB图像 转点云 python

要将深度图和RGB图像转换为点云,你可以使用OpenCV库和numpy库。以下是一个Python示例代码,展示了如何将深度图和RGB图像转换为3D点云:




import numpy as np
import cv2
import open3d as o3d
 
# 读取深度图和RGB图像
depth_image = cv2.imread("depth.png", cv2.IMREAD_UNCHANGED)
rgb_image = cv2.imread("rgb.jpg")
 
# 获取相机内参(假设为相同的内参矩阵)
fx = 525.0  # 焦距
fy = 525.0
cx = 319.5
cy = 239.5
 
# 深度图转换为距离图
depth_image = depth_image.astype(np.float32) / 65535.0  # 将16位无符号整数转为32位浮点数,并归一化
distance = (1.0 / depth_image) - 1.0  # 深度图转距离图
 
# 创建点云
point_cloud = o3d.geometry.PointCloud()
 
# 遍历深度图像,计算3D坐标
for v in range(depth_image.shape[0]):
    for u in range(depth_image.shape[1]):
        if depth_image[v, u] == 0:
            continue
        z = distance[v, u]
        x = (u - cx) * z / fx
        y = (v - cy) * z / fy
        point_cloud.points.append([x, y, z])
        point_cloud.colors.append(rgb_image[v, u])
 
# 转换点云到o3d格式
point_cloud.estimate_normals()
 
# 可视化点云
o3d.visualization.draw_geometries([point_cloud])

确保你有相机的内参,这些值取决于你使用的相机型号和相机标定结果。depth.pngrgb.jpg 分别是深度图像和RGB图像的文件名,你需要根据你的文件位置进行相应的更改。

这段代码使用了Open3D库来创建和可视化点云。首先,它读取深度图像并将其转换为距离图,然后遍历深度图像中的每个像素,根据相机的内参计算对应的3D坐标,并将颜色信息从RGB图像中提取并添加到点云中。最后,使用Open3D的 estimate_normals() 函数估算点云的法向量,并使用 draw_geometries() 函数显示点云。

最后修改于:2024年08月25日 19:32

评论已关闭

推荐阅读

Vue中使用mind-map实现在线思维导图
2024年08月04日
VUE
Web前端最全Vue实现免密登录跳转的方式_vue怎么样不登录返回首页,最强技术实现
2024年08月04日
VUE
vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)
2024年08月04日
VUE
Vue-颜色选择器实现方案——>Vue-Color( 实战*1+ Demo*7)
2024年08月04日
VUE
Vue项目卡顿慢加载?这些优化技巧告诉你!_vue数据多渲染卡顿
2024年08月04日
VUE
vue中的keep-alive详解与应用场景
2024年08月04日
VUE
Vue、React实现excel导出功能(三种实现方式保姆级讲解)
2024年08月04日
vue-office/docx插件实现docx文件预览
2024年08月04日
VUE
java调用js文件的两种方法(支持V8引擎)
2024年08月04日
JavaScript:解决计算精度问题/mathjs/bignumber.js/big.js/decimal.js
2024年08月04日
两周从爬虫小白变大神 _yjs_js_security_passport
2024年08月04日
JS笔记(对象、函数、数组)
2024年08月04日
Markdown.js:强大的纯JavaScript Markdown解析器
2024年08月04日
Vue项目:js模拟点击a标签下载文件并重命名,URL文件地址下载方法、请求接口下载文件方法总结。
2024年08月04日
vue 父组件怎么获取子组件里面的data数据
2024年08月04日
VUE
个人开发实现AI套壳网站快速搭建(Vue+elementUI+SpringBoot)
2024年08月04日
el-table 表格封装并改造实现单元格可编辑
2024年08月04日
none
nodejs环境下创建vue项目、SSH密钥登陆!!!
2024年08月04日
vue+quill+element-ui实现视频、图片上传及缩放保姆级教程,轻松使用富文本
2024年08月04日
【three.js】22. Imported Models导入模型
2024年08月04日