Nella mia applicazione ottengo la cornice di profondità simile alla cornice di profondità recuperata dall'esempio di base di profondità. Quello che non capisco è, perché ci sono livelli discreti nell'immagine? Non so come posso chiamare questi improvvisi cambiamenti nei valori di profondità. Chiaramente la mia metà della mia mano destra è tutta nera e la mia mano sinistra sembra divisa in 3 di questi livelli. Cos'è questo e come lo rimuovo?Immagine profondità Kinect
Kinect Depth Basics Sample http://i46.tinypic.com/2hwekxd.jpg
Quando esegue l'esempio app KinectExplorer ottengo la profondità come segue. Questa è l'immagine di profondità che voglio generare dai dati di profondità grezza.
Kinect Explorer http://i50.tinypic.com/2rwx1z5.jpg
Sto usando Microsoft Kinect SDK (v1.6) NuiApi con OpenCV. Ho il codice seguente:
BYTE *pBuffer = (BYTE*)depthLockedRect.pBits; //pointer to data having 8-bit jump
USHORT *depthBuffer = (USHORT*) pBuffer; //pointer to data having 16-bit jump
int cn = 4;
this->depthFinal = cv::Mat::zeros(depthHeight,depthWidth,CV_8UC4); //8bit 4 channel
for(int i=0;i<this->depthFinal.rows;i++){
for(int j=0;j<this->depthFinal.cols;j++){
USHORT realdepth = ((*depthBuffer)&0x0fff); //Taking 12LSBs for depth
BYTE intensity = (BYTE)((255*realdepth)/0x0fff); //Scaling to 255 scale grayscale
this->depthFinal.data[i*this->depthFinal.cols*cn + j*cn + 0] = intensity;
this->depthFinal.data[i*this->depthFinal.cols*cn + j*cn + 1] = intensity;
this->depthFinal.data[i*this->depthFinal.cols*cn + j*cn + 2] = intensity;
depthBuffer++;
}
}
Si prega di ricontrollare le immagini, non vengono visualizzati. –
Modificato l'URL dell'immagine. Controlla di nuovo. – thinkquester
Che cos'è '' cn'' e deve essere davvero '' 4'' e non '' 3''? Sarebbe anche gread per vedere dove effettivamente l'output dell'immagine. – Tim