亲测代码程序可运行使用,open3d版本0.13.0。

open3d数据资源下载:GitHub - Cobotic/Open3D: Open3D: A Modern Library for 3D Data Processing

代码执行功能有:读取相机内参、读取RGBD图像、从一对RGBD图像中计算里程、可视化RGBD图像对,详情请见代码。

'''
Author: dongcidaci
Date: 2021-09-12 19:33:29
LastEditTime: 2021-09-12 19:55:11
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \open3d\06——RGBDImage_test.py
'''
import open3d as o3d
import numpy as np#RGBD测程法(RGBD Odometry)是去寻找两个RGBD图像之间的相机移动。
#他的输入是一对RGBImage的实例,输出是刚体变换形式的运动。
#读取相机内参(camera intrinsic)
#我们首先从json文件中读取相机内参。
pinhole_camera_intrinsic = o3d.io.read_pinhole_camera_intrinsic("Open3D-master/examples/test_data/camera_primesense.json")
print(pinhole_camera_intrinsic.intrinsic_matrix)
#Open3d 中许多小的数据结构都能够通过json文件来读写。包括相机参数,相机轨迹,姿态图等等。#读取RGBD图像
#这个代码块是读取两对Redwood格式的RGBD图像。
source_color = o3d.io.read_image("Open3D-master/examples/test_data/RGBD/color/00000.jpg")
source_depth = o3d.io.read_image("Open3D-master/examples/test_data/RGBD/depth/00000.png")
target_color = o3d.io.read_image("Open3D-master/examples/test_data/RGBD/color/00001.jpg")
target_depth = o3d.io.read_image("Open3D-master/examples/test_data/RGBD/depth/00001.png")
source_rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth(source_color, source_depth)
target_rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth(target_color, target_depth)
target_pcd = o3d.geometry.PointCloud.create_from_rgbd_image(target_rgbd_image, pinhole_camera_intrinsic)
#Open3d假设彩色图像和深度图像是同步的,并且在同一坐标系下配准。这通常可以在RGBD相机中通过打开同步和配准设置来实现。#从一对RGBD图像中计算里程
option = o3d.pipelines.odometry.OdometryOption()
odo_init = np.identity(4)
print(option)
#去最小化对齐图片的颜色一致性
[success_color_term, trans_color_term, info] = o3d.pipelines.odometry.compute_rgbd_odometry(source_rgbd_image, target_rgbd_image, pinhole_camera_intrinsic,odo_init, o3d.pipelines.odometry.RGBDOdometryJacobianFromColorTerm(), option)
#除了颜色一致性以外,他还实现了几何约束
[success_hybrid_term, trans_hybrid_term, info] = o3d.pipelines.odometry.compute_rgbd_odometry(source_rgbd_image, target_rgbd_image, pinhole_camera_intrinsic,odo_init, o3d.pipelines.odometry.RGBDOdometryJacobianFromHybridTerm(), option)
#OdometryOption()有几个参数:
#1.minimum_correspondence_ratio:对齐后,测量两张RGBD图像的重叠比率。如果两组RGBD图像的重叠区域小于指定的比例,则测程模块会认为这是失效的情况。
#2.max_depth_diff:在深度图像中,如果两个对齐的像素的深度差异是小于一个值的,则认为它们是对应的。值越大,搜索越激进,但是结果越不容易稳定。
#3.min_depth 和 max_depth:大于或小于指定深度的像素会被忽略。#可视化RGBD图像对
#将RGBD图像对转换成点云并且一起渲染。要注意的是,第一个(源)RGBD图像是通过测程法估计出的变换来进行变换的。经过变化之后的两组点云是对齐的。
if success_color_term:print("Using RGB-D Odometry")print(trans_color_term)source_pcd_color_term = o3d.geometry.PointCloud.create_from_rgbd_image(source_rgbd_image, pinhole_camera_intrinsic)source_pcd_color_term.transform(trans_color_term)o3d.visualization.draw_geometries([target_pcd, source_pcd_color_term])
if success_hybrid_term:print("Using Hybrid RGB-D Odometry")print(trans_hybrid_term)source_pcd_hybrid_term = o3d.geometry.PointCloud.create_from_rgbd_image(source_rgbd_image, pinhole_camera_intrinsic)source_pcd_hybrid_term.transform(trans_hybrid_term)o3d.visualization.draw_geometries([target_pcd, source_pcd_hybrid_term])

Open3d(六)——RGBD测程法相关推荐

  1. Open3d之RGBD测程法

    RGBD测程法是去寻找两个连续的RGBD图像对之间的相机移动.它的输入是一对RGBImage的实例,输出是刚体变换形式的运动.Open3D实现了 [Steinbrucker2011] and [Par ...

  2. 算高差改正数的计算机程序,水准测量中的高差改正数应该怎么算?我们是六个点,而且每次只能观测两个点,也就是有六个测段...

    1.设六个观测点为ABCDEF,先测个闭合环,算出闭合差w. 2.测出每个测段的距离L1~L6,计算总距离L. 3.闭合差W除以总距离L,再分别乘上每个测段的距离L1〜L6,得出的这六个数就是每个测段 ...

  3. Open3d从RGBD生成点云、mesh

    相机模型 x=PX→x=K[R∣t]X→zc[uv1]=[kx0u00kyv0001][R∣t][xcyczc]x=PX \rightarrow x = K[R|t]X \rightarrow z_c ...

  4. Open3D:如何使用RGBD图像集成实现三维重建?

    Open3D:如何使用RGBD图像集成实现三维重建? Open3D是一个开源的跨平台计算机视觉库,可用于处理点云.深度图像和RGB图像等数据.在三维重建中,RGBD图像集成是非常重要的一步,可以帮助我 ...

  5. 3D视觉创新应用(三维重建)竞赛作品系列——人体三维精准量测与动作捕捉

    一.背景介绍 1 项目背景与国内外研究现状 1.1 项目背景分析 近年来,RGB-Depth(RGB-D)传感器,如Kinect V1,和Structure Sensor等,在室内即时定位与地图构建应 ...

  6. winpcap基本原理及常见应用_碳十四测年的基本原理和常见应用谬误

    如果说地层学原理是18世纪地质学给19世纪考古学的重要礼物,那么放射性碳定年法就是20世纪考古学最重要的进步之一.这两种方法都对年代判定做出了重要的贡献,因为若是没有某种类型的年代测定,我们就不可能建 ...

  7. 安全宝多点测速一“真”见血

    本文讲的是安全宝多点测速一"真"见血,近日,针对央视<每周质量报告>曝光宽带运营商网速造假及或存帮凶一事,网站安全专家--安全宝为维护网民利益迅速做出反应,宣布推出安全 ...

  8. (19)深度点云学习--利用RGBD图三维重建room

    1.主要参考 (1)最主要参考,官方的blog Make fragments - Open3D 0.16.0 documentation (2)操作流程参考 Python从RGBD数据进行3D场景重建 ...

  9. Open3d利用彩色图和深度图生成点云进行室内三维重建

    上一次得到的点云图在累加多张后配准会出现少量离群的点云,效果很差,于是考虑从 ICL-NUIM dataset这个数据集获得官方的室内图进行三维重建,数据集网址如下: ICL-NUIM RGB-D B ...

最新文章

  1. VS Code报错解决:Error: end of central directory record signature not found
  2. 循环冗余校验码CRC,求解步骤
  3. Scala AKKA入门示例
  4. 【Linux】一步一步学Linux——dirs命令(了解)(24)
  5. [BZOJ3992]序列统计
  6. python中怎么创建配置文件_如何在Django中创建配置文件注册表单?
  7. python watchdog的使用_python watchdog监控文件修改
  8. CodeBlocks配色方案设置(简单易懂)
  9. 所有windows的资料
  10. Esri官网购买个人版ArcGIS Pro激活方法
  11. 好好编程-物流项目03【GitHub管理】
  12. IDEA设置字体随鼠标滚动放大缩小
  13. jvm异常生成文件hs_err_pid[pid].log
  14. java fact函数_Fact 定义一个类Fact表示无符号有理数(分数) 联合开发网 - pudn.com...
  15. 三年之期已至,加多宝如何续写上市新故事
  16. 69期-Java SE-036_MySQL-7 SQL练习 -doing
  17. hx711c语言程序,51单片机HX711传感器电子秤设计(原理图、程序源码、BOM等)
  18. java基于ssh的旅游系统
  19. 21天python百度网盘_《21天学通Python》PDF 高清版百度网盘下载
  20. python制作图表(爬取数据之后分析最后制成图表)

热门文章

  1. 魔改YOLOv5/YOLOv7高阶版——改进之结合解耦头Decoupled_Detect
  2. 对chrome中出现已尝试对扩展程序降级的问题的一点尝试
  3. matlab画信号频谱
  4. linux下,解压和压缩tgz包
  5. 腾讯 | 自动驾驶仿真平台TAD Sim 2.0「AI工程论」
  6. 格式化工具indent使用笔记
  7. Flink Native Kubernetes实战
  8. HPPT post发送数据
  9. OSChina 清明节乱弹 ——老乡不要害怕,我们不糟蹋你
  10. 中小企业如何抢占年中大促市场?你只需把它做好……