Kinect pour Windows v2 profondeur pour le désalignement de l'image couleur

actuellement, je suis en train d'élaborer un outil pour le Kinect pour Windows v2 (similaire à celle de la XBOX ONE). J'ai essayé de suivre quelques exemples, et disposer d'un exemple qui montre l'image de la caméra, la profondeur de l'image, et une image que les cartes de la profondeur à l'rvb à l'aide d'opencv. Mais je vois qu'il reprend ma main lors de la cartographie, et je pense que c'est dû à une erreur dans les coordonnées du mappeur de la partie.

ici est un exemple:
Kinect pour Windows v2 profondeur pour le désalignement de l'image couleur

Et voici l'extrait de code qui crée l'image (rgbd image dans l'exemple)

void KinectViewer::create_rgbd(cv::Mat& depth_im, cv::Mat& rgb_im, cv::Mat& rgbd_im){
    HRESULT hr = m_pCoordinateMapper->MapDepthFrameToColorSpace(cDepthWidth * cDepthHeight, (UINT16*)depth_im.data, cDepthWidth * cDepthHeight, m_pColorCoordinates);
    rgbd_im = cv::Mat::zeros(depth_im.rows, depth_im.cols, CV_8UC3);
    double minVal, maxVal;
    cv::minMaxLoc(depth_im, &minVal, &maxVal);
    for (int i=0; i < cDepthHeight; i++){
        for (int j=0; j < cDepthWidth; j++){
            if (depth_im.at<UINT16>(i, j) > 0 && depth_im.at<UINT16>(i, j) < maxVal * (max_z / 100) && depth_im.at<UINT16>(i, j) > maxVal * min_z /100){
                double a = i * cDepthWidth + j;
                ColorSpacePoint colorPoint = m_pColorCoordinates[i*cDepthWidth+j];
                int colorX = (int)(floor(colorPoint.X + 0.5));
                int colorY = (int)(floor(colorPoint.Y + 0.5));
                if ((colorX >= 0) && (colorX < cColorWidth) && (colorY >= 0) && (colorY < cColorHeight))
                {
                    rgbd_im.at<cv::Vec3b>(i, j) = rgb_im.at<cv::Vec3b>(colorY, colorX);
                }
            }

        }
    }
}

Quelqu'un a une idée de comment résoudre ce problème? Comment éviter cette duplication?

Merci d'avance

Mise à JOUR:

Si je fais une simple image de profondeur seuillage je obtenir l'image suivante:
Kinect pour Windows v2 profondeur pour le désalignement de l'image couleur

C'est ce plus ou moins, je m'attendais à arriver, et ne pas avoir un double de la main en arrière-plan. Est-il un moyen pour éviter cette double main dans le fond?

source d'informationauteur api55