【发布时间】:2012-12-03 05:43:09
【问题描述】:
首先对不起我的英语
我正在使用带有面部跟踪 API 的 Microsoft 的 Kinect SDK,并且我正在使用 GetFaceRect 函数获取面部矩形。我现在要做的是将视频缓冲区转换为 OpenCV Mat,然后使用 OpenCV 删除除面部之外的所有内容。
要将视频帧转换为 OpenCV 垫,我使用这个:
cv::Mat * openCVImg = new cv::Mat(cameraConfig.Height, cameraConfig.Width, CV_8UC4);
memcpy(openCVImg->data, m_KinectSensor.GetVideoBuffer()->GetBuffer(), m_KinectSensor.GetVideoBuffer()->GetBufferSize());
问题是当我尝试再次绘制脸部矩形时,但这次使用 OpenCV Mat 我将矩形移到左侧并且与我的脸部不匹配。
我读到这张图片可能会大步前进,但有:
m_KinectSensor.GetVideoBuffer()->GetStride() / m_KinectSensor.GetVideoBuffer()->GetBytesPerPixel()
我得到了将近 640 帧的宽度
【问题讨论】:
-
结果图片未显示。
-
糟糕,我真的很抱歉.. dropbox.com/s/n8cjhoal3eiqgr8/result_image.png
标签: c++ opencv kinect-sdk