2015-06-19 27 views
0

我知道調用映射函數應該非常簡單,但在調試以下代碼時ColorSpacePoint值通常是-1。#INF0000。我傳遞給映射方法的CameraSpacePoint很好。任何人有任何想法,爲什麼是這樣的情況?謝謝。Kinect SDK 2:CoordinateMapper不返回有效結果

_sensor = KinectSensor::GetDefault() 

    //Do some stuff 

    CameraSpacePoint pos3d = body->Joints->Lookup(t->JointType()).Position; // This works. 
    ColorSpacePoint pos = _sensor->CoordinateMapper->MapCameraPointToColorSpace(pos3d); 

回答

0

從CoordinateMapperBasics示例項目的意見:

//標記值是-inf,-inf,這意味着沒有深度像素對應於這種顏色的像素。

因此,對於具有相應深度像素的彩色像素,它將是一個有效值,但您應執行檢查以確保該值不是負無窮大。

0

我發現我的問題 - 這是一個非常具體的問題,但總有其他人可能遇到這個問題。

我使用Microsoft的Kinect Studio將性能傳遞給我的應用程序。這工作很好,但你必須選擇你想傳遞的數據流。默認情況下,'Nui Uncompressed Color'流與其餘部分不捆綁。如果沒有這個對colorframe映射器的調用將是無效的。

簡單地將未壓縮的顏色流Kinect的數據解決了這個問題。不過,我經常需要停止/重新啓動流以使映射器正常工作。不知道爲什麼。