我需要从 Kinnect 相机捕获彩色 RGB 图像,但我想在 OpenCV 中显示它,因为这只是更大程序的一部分。如果你设置了标志,我知道 OpenCV 与 OpenNI 兼容,但是尽管我努力 CMake 找不到 OpenNI2 的路径,所以我无法用 OpenNI 构建 OpenCV。无论如何,我认为知道如何手动将 OpenNI 帧转换为 openCV 帧是件好事,所以我决定采用这种方式。
为了在 OpenNI 中捕获颜色帧,我尝试了以下方法:
openni::Device device;
openni::VideoStream color;
openni::VideoFrameRef colorFrame;
rc = openni::OpenNI::initialize();
rc = device.open(openni::ANY_DEVICE);
rc = color.create(device, openni::SENSOR_COLOR);
rc = color.start();
color.readFrame(&colorFrame);
const openni::RGB888Pixel* imageBuffer = (const openni::RGB888Pixel*)colorFrame.getData();
但现在我不明白如何转换为 cv::Mat。
有没有人能做到这一点?