所使用到的主要模块介绍
这里主要想要实现Realsense深度相机的点云建模并显示:
- pyrealsense2 1,这是intel的官方库的python版本,主要实现对相机所采集的RGB与深度图像进行处理;
- numpy ,对图像数据进行转换保存;
- cv2 ,实现RGB与深度图像的显示;
- open3d2 ,重点库,实现利用RGBD数据进行点云重建,并显示点云;
直接上代码
代码来github 3,我主要就是整理了一下并且添加了中文注释~
import pyrealsense2 as rs
import numpy as np
import cv2
import time
import open3d as o3d
import os
import sys
view_ind = 0
breakLoopFlag = 0
backgroundColorFlag = 1
# 保存当前的RGBD和点云
def saveCurrentRGBD(vis):
global view_ind, depth_image, color_image1, pcd
if not os.path.exists('./output/'):
os.makedirs('./output')
cv2.imwrite('./output/depth_'+str(view_ind)+'.png', depth_image)
cv2.imwrite('./output/color_'+str(view_ind)+'.png', color_image1)
o3d.io.write_point_cloud('./output/pointcloud_'+str(view_ind)+'.pcd', pcd)
print('No.'+str(view_ind)+' shot is saved.')
return False
# 退出当前程序
def breakLoop(vis):
global breakLoopFlag
breakLoopFlag += 1
cv2.destroyAllWindows()
vis.destroy_window()
sys.exit()
def cha