主要目的:根据得到的RGB彩色图像和Depth深度图像,生成点云图,采用的是open3d软件:
import open3d as o3d
import matplotlib.pyplot as plt
import numpy as np
if __name__ == "__main__":
print("Read Redwood dataset")
color_raw = o3d.io.read_image("/home/liu/桌面/ceshi/color1.jpg")
# print(color_raw)
# a = np.asarray(color_raw) # 把图像转换为numpy数组
# print(a)
# print(a.shape)
depth_raw = o3d.io.read_image("/home/liu/桌面/ceshi/depth.png")
rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth(
color_raw, depth_raw, convert_rgb_to_intensity=False)
print(rgbd_image)
pcd = o3d.geometry.PointCloud.create_from_rgbd_image(
rgbd_image,
o3d.camera.PinholeCameraIntrinsic(
o3d.camera.PinholeCameraIntrinsicParameters.PrimeSenseDefault))
# Flip it, otherwise the pointcloud will be upside down
pcd.transform([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]])
# o3d.io.write_point_cloud("test.pcd", pcd)
o3d.visualization.draw_geometries([pcd])
理论:
参考链接: