【问题标题】:IFTResult to cvMat pixel coordinatesIFTResult 到 cvMat 像素坐标
【发布时间】: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 帧的宽度

【问题讨论】:

标签: c++ opencv kinect-sdk


【解决方案1】:

谢谢!正如 Esteban 之前建议的那样,不要使用 memcpy y 将每个字节从 IFTResult 复制到 cv::Mat

【讨论】:

  • 我建议但删除了我的评论,因为我不确定是否是问题^^
猜你喜欢
  • 2011-12-04
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
  • 2015-12-31
  • 2013-09-26
  • 1970-01-01
  • 2018-01-02
  • 2011-03-07
相关资源
最近更新 更多