我正在使用Python 中的OpenCV。我想从 Asus Xtion 获得输入。我能够从 PyOpenNI 成功运行示例。我想使用igen.get_synced_image_map_bgr()
在opencv中获得的图像(str格式)。
igen-ImageGenerator
我想将其转换为IplImage
. 我该怎么做,或者我如何才能在 Opencv python 代码中使用来自深度传感器的输入。
我最近在带有 OpenCV 的 PyOpenNI 中使用了来自 Kinect 的字符串格式深度数据。使用可以从字符串创建的 numpy 数组,它们是 Python 的 cv2 (OpenCV) 中的默认数据类型。
此处的代码示例:http: //euanfreeman.co.uk/pyopenni-and-opencv/
不确定 Kinect 与您的深度传感器有何不同,但这可能是一个有用的起点。祝你好运!
编辑:添加代码
from openni import *
import numpy as np
import cv2
# Initialise OpenNI
context = Context()
context.init()
# Create a depth generator to access the depth stream
depth = DepthGenerator()
depth.create(context)
depth.set_resolution_preset(RES_VGA)
depth.fps = 30
# Start Kinect
context.start_generating_all()
context.wait_any_update_all()
# Create array from the raw depth map string
frame = np.fromstring(depth.get_raw_depth_map_8(), "uint8").reshape(480, 640)
# Render in OpenCV
cv2.imshow("image", frame)