ZED_Pro1:ZED深度相机进行点云可视化和保存
`提示:我在这里想得到深度相机获取的点云数据并且进行可视化,虽然光放以及给出一部分代码,但是并不能支撑我完成所有工作,所以在这里做一个简单的记录吧。
导入各种需要的包:
import time
import pyzed.sl as sl
import math
import numpy as np
import sys
import cv2
from scipy.spatial.transform import Rotation
from matplotlib import pyplot as plt
import transforms3d as tfs
from open3d import*
from pclpy import pcl
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
import open3d as o3d
定义一个获取点云的函数,并且返回保存点云文件名:
`提示:这里我保存的点云格式是“.xyz",如果想换成其他格式,替换这个地方就可以
def save_point_cloud(zed, filename) :
print("Saving Point Cloud...")
tmp = sl.Mat()
zed.retrieve_measure(tmp, sl.MEASURE.XYZRGBA)
saved = (tmp.write(filename + ".xyz") == sl.ERROR_CODE.SUCCESS)
if saved :
print("Done")
else :
print("Failed... Please check that you have permissions to write on disk")
return str(filename + ".xyz")
然后开始整个流程:
def main():
zed = sl.Camera()
init_params = sl.InitParameters()
init_params.depth_mode = sl.DEPTH_MODE.PERFORMANCE
init_params.coordinate_units = sl.UNIT.METER
init_params.camera_resolution = sl.RESOLUTION.HD720
err = zed.open(init_params)
if err != sl.ERROR_CODE.SUCCESS:
exit(1)
runtime_parameters = sl.RuntimeParameters()
runtime_parameters.sensing_mode = sl.SENSING_MODE.STANDARD
runtime_parameters.confidence_threshold = 100
runtime_parameters.textureness_confidence_threshold = 100
i = 0
image = sl.Mat()
depth = sl.Mat()
point_cloud = sl.Mat()
mirror_ref = sl.Transform()
mirror_ref.set_translation(sl.Translation(2.75,4.0,0))
tr_np = mirror_ref.m
zed.enable_positional_tracking()
zed_pose = sl.Pose()
while i < 1:
if zed.grab(runtime_parameters) == sl.ERROR_CODE.SUCCESS:
zed.retrieve_image(image, sl.VIEW.LEFT)
zed.retrieve_measure(depth, sl.MEASURE.DEPTH)
zed.retrieve_measure(point_cloud, sl.MEASURE.XYZRGBA)
point_cloud_np = point_cloud.get_data()
point_cloud_np.dot(tr_np)
date_string = time.strftime("%Y%m%d %H.%M")
saved = save_point_cloud(zed, date_string)
pcd = o3d.io.read_point_cloud(saved)
o3d.visualization.draw_geometries([pcd])
i = i + 1
zed.close()
if __name__ == "__main__":
main()
例如:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)