2012-12-15 80 views
2

首先感謝我的英語 我正在使用微軟的Kinect SDK和臉部跟蹤API,並且我正在使用GetFaceRect函數獲得正面效果。我現在想要做的就是將視頻緩衝區轉換爲OpenCV Mat,然後使用OpenCV刪除所有內容。 從視頻幀轉換爲OpenCV的墊子我用這個:IFTResult以cvMat像素座標

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至極是幀的寬度

+0

您能向我們展示圖像嗎? – ArtemStorozhuk

+0

這是正確的原始圖像rect https://www.dropbox.com/s/dxktzxultniqrgi/orig_image.png和結果圖像https://dl-web.dropbox.com/get/Public_share/result_image.png ?w = bfc9d6a7 – acepero13

+0

結果圖像未顯示。 – ArtemStorozhuk

回答

0

謝謝!正如Esteban先前所建議的,不是使用memcpy y從IFTResult複製每個字節的字節到cv::Mat

+0

我建議它,但刪除了我的評論,因爲我不確定是否是問題^^ –