librealsense库的跨平台cTypes/cython包装器。
pyrealsense的Python项目详细描述
跨平台 ctypes/Cython 包装到 librealsense 图书馆。
先决条件
- 安装 librealsense 并运行示例。
- 安装依赖项:pyrealsense使用 pycparser用于提取 librealsense api中的必要枚举和结构定义, Cython用于包装 librealsense api和 通用数据洗牌。
- windows specifics:将环境变量pyrs_includes设置为 rs.h目录位置和环境变量pyrs_libs to librealsense二进制位置。你可能还需要 stdint.h在您的路径中可用。
在线使用
## setup logging import logging logging.basicConfig(level = logging.INFO) ## import the package import pyrealsense as pyrs ## start the service - also available as context manager serv = pyrs.Service() ## create a device from device id and streams of interest cam = serv.Device(device_id = 0, streams = [pyrs.stream.ColorStream(fps = 60)]) ## retrieve 60 frames of data for _ in range(60): cam.wait_for_frames() print(cam.color) ## stop camera and service cam.stop() serv.stop()
RealSense设备的服务器是用^{tt3}启动的$ 将打印出可用设备的数量。也可以是 以with pyrs.Service():作为上下文启动。
可以从服务Device工厂创建不同的设备。 它们被创建为自己的类,由设备ID、名称、序列号和 固件以及启用的流和摄像头预设。违约 使用id = 0创建设备并设置颜色、深度, 点云、颜色对齐、深度对齐、颜色和红外 溪流。
可用的流是本地流或合成流,每个流都将 创建公开帧缓冲区当前内容的属性 以device.<stream_name>的形式,其中<stream_name>是 颜色、深度、点、CAD、DAC或红外。要访问新数据, Device.wait_for_frames必须每帧调用一次。
脱机使用
## with connected device cam from pyrealsense import offline offline.save_depth_intrinsics(cam)
## previous device cam now offline from pyrealsense import offline offline.load_depth_intrinsics('610205001689') # camera serial number d = np.linspace(0, 1000, 480*640, dtype=np.uint16) pc = offline.deproject_depth(d)
模块offline可以存储 默认情况下,在文件的用户主目录中的设备到磁盘 .pyrealsense。这可以稍后加载并用于降低深度 数据到PointCloud中,这对于存储原始视频文件和保存 一些磁盘存储器。
示例
有三个例子使用不同的可视化技术: 带matplotlib颜色和深度的颜色 具有opencv的流-具有 VTK
注意事项
到目前为止,此包装器的测试方法是:
- librealsense v1.12.1
- ubuntu 16.04 LTS,Mac OS X 10.12.2 w/SR300相机
- Mac OS X 10.12.3 w/r200摄像头
脱机模块仅支持一个摄像头。
可能的拉取请求
- 对文档的改进
- 来自rs.h 的更多功能
- 锅炉板代码(Qt示例?)
- 支持脱机模块中的多个摄像头
- Windows和MacOS的持续集成
确保推送到dev分支。