因此,我正在开展一个学校项目,该项目涉及跟踪乒乓球并预测它将采用的路径。我让它与网络摄像头一起工作,但没有 z 坐标,并且使用屏幕上的点而不是现实世界的点已经大大降低了速度的计算。所以我打算切换到 xbox 360 kinect 我必须处理这两个问题。从我的在线阅读来看,这不应该是一个巨大的转变,因为我已经在使用 openCV 进行跟踪。然而,经过我所有的在线研究并最终将 pykinect 安装在我的 pycharm 项目环境中,我遇到了障碍。我在网上找到了一些关于如何访问彩色视频和深度的示例。然而,当我拉起深度视频时,它被侧向旋转并且全是黑色的。当我尝试使用使深度视频适用于彩色视频的相同过程时,它要么崩溃,要么只是再次拉起深度视频。我发现的其他颜色示例初始化了窗口,然后它变得无响应。提前感谢任何帮助。我已经安装的 pykinecthttps://github.com/shrirangkadam/pykinect-python3.6/blob/master/Examples/kinect.py这个github上给出的例子变得没有响应。下一个代码是我为深度相机所做的工作。
def update_depth_data(new_depth_data):
global depth_data
depth_lock.acquire()
depth_data = new_depth_data
depth_lock.release()
def depth_frame_ready(frame):
# Copy raw data in a temp surface
frame.image.copy_bits(tmp_s._pixels_address)
update_depth_data((pygame.surfarray.pixels2d(tmp_s) >> 3) & 4095)
def main():
kinect = nui.Runtime()
# camera opens
kinect.depth_frame_ready += depth_frame_ready
kinect.depth_stream.open(nui.ImageStreamType.Depth, 2, nui.ImageResolution.Resolution320x240, nui.ImageType.Depth)
while True:
if depth_data is not None:
cv2.imshow('Kinect Depth', depth_data)
# 'q' to quit
key = cv2.waitKey(1) & 0xFF
if key == ord("q"):
break
# close all windows
cv2.destroyAllWindows()