イタリックテキスト### 前提・実現したいこと
kinectv2で座標変換を行っています。MapDepthFrameToColorSpaceを使いDepth解像度で動画を表示しています。
ですが実行してみるとすべてではないのですが動画の1部が2重になってしまいます。2重を直したいのですが、どのような仕組みでこの現象が起きているのかも教えていただきたいです。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード cv::Mat draw() { cv::Mat colorImage(colorHeight, colorWidth, CV_8UC4, &colorBuffer[0]); std::vector<ColorSpacePoint> depthSpace(depthWidth * depthHeight); coordinateMapper->MapDepthFrameToColorSpace(depthBuffer.size(), &depthBuffer[0], depthSpace.size(), &depthSpace[0]); // 表示用の画像データ cv::Mat showImage(cv::Size(depthWidth, depthHeight), CV_8UC4); for (int i = 0; i < depthWidth * depthHeight; ++i) { int depthX = (int)depthSpace[i].X; int depthY = (int)depthSpace[i].Y; if ((depthX < 0) || (1920 <= depthX) || (depthY < 0) || (1080 <= depthY)) { continue; } int depthIndex = (depthY * colorWidth) + depthX; // 範囲内のみカラー画像で表示 if (depthBuffer[i] > 500 && depthBuffer[i] < 8000) //範囲の指定 { int colorIndex = i * 4; int colorBufferIndex = depthIndex * 4; showImage.data[colorIndex + 0] = colorBuffer[colorBufferIndex + 0]; showImage.data[colorIndex + 1] = colorBuffer[colorBufferIndex + 1]; showImage.data[colorIndex + 2] = colorBuffer[colorBufferIndex + 2]; } } return showImage; } }; ### 試したこと 500~8000で表示しております。 ### 補足情報(FW/ツールのバージョンなど) KINECT for Windows SDKプログラミングv2センサー対応版の3.7座標の変換を行うを参考にしました。
あなたの回答
tips
プレビュー