python用pyrealsense2库写一个保存点云的函数,不能出错
时间: 2024-03-02 14:52:51 浏览: 122
好的,以下是一个简单的保存点云的 Python 函数,使用 pyrealsense2 库:
```python
import pyrealsense2 as rs
import numpy as np
def save_pointcloud(filename):
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
pipeline.start(config)
align = rs.align(rs.stream.color)
try:
frames = pipeline.wait_for_frames()
aligned_frames = align.process(frames)
depth_frame = aligned_frames.get_depth_frame()
color_frame = aligned_frames.get_color_frame()
pc = rs.pointcloud()
pc.map_to(color_frame)
points = pc.calculate(depth_frame)
vtx = np.asanyarray(points.get_vertices())
tex = np.asanyarray(color_frame.get_data())
np.savetxt(filename + '_vtx.txt', vtx)
np.savetxt(filename + '_tex.txt', tex)
finally:
pipeline.stop()
```
这个函数会启动 RealSense 摄像头并捕获一帧深度图和彩色图,然后使用 `rs.pointcloud()` 对象将深度图转换为点云,并将结果保存到两个文件中:`filename_vtx.txt` 和 `filename_tex.txt`。其中 `vtx` 存储点云的顶点坐标,`tex` 存储对应的颜色信息。
使用时只需要调用 `save_pointcloud()` 函数并传入保存的文件名即可。例如:
```python
save_pointcloud('my_pointcloud')
```
这将保存点云到 `my_pointcloud_vtx.txt` 和 `my_pointcloud_tex.txt` 两个文件中。
阅读全文