Kinect et Opencv, la profondeur de l'image, comment l'utiliser

J'ai de l'utilisation de Kinect et d'OpenCV (je suis à l'aide de c++). Je peux obtenir à la fois le RVB et la profondeur de l'image.
Avec l'image RVB je peux "jouer" comme d'habitude, le flou, l'utilisation prudente (après conversion en niveaux de gris),... mais je ne peux pas faire la même chose avec l'image de profondeur. Chaque fois que je veux faire quelque chose avec l'image de profondeur j'ai eu des exceptions.

J'ai le code suivant pour obtenir la profondeur de l'image:

CvMat* depthMetersMat = cvCreateMat(480, 640, CV_16UC1 ); 
CvMat* imageMetersMat = cvCreateMat(480, 640, CV_16UC1 );
IplImage *kinectDepthImage = cvCreateImage( cvSize(640,480),16,1); 

const XnDepthPixel* pDepthMap = depth.GetDepthMap();

for (int y=0; y<XN_VGA_Y_RES; y++){ 
            for(int x=0;x<XN_VGA_X_RES;x++){ 
                depthMetersMat->data.s[y * XN_VGA_X_RES + x ] = 10 * pDepthMap[y * XN_VGA_X_RES + x]; 
          }
}

cvGetImage(depthMetersMat, kinectDepthImage);

Le problème est que je ne peux pas faire n'importe quoi avec kinectDepthImage. J'ai essayé de convertir en niveaux de gris, puis en utilisant futé, mais je ne sais pas comment faire pour le convertir.

Fondamentalement, je voudrais appliquer savant et le laplacien de l'image de profondeur.

OriginalL'auteur Dr Sokoban | 2011-04-01