我正在使用紅外視圖和深度視圖在Kinect項目上工作。在紅外視圖中,使用CVBlob庫,我可以提取一些2D興趣點。我想找到這些2D點的深度。所以我認爲我可以直接使用深度視圖,如下所示:Kinect紅外視圖與Kinect深度視圖有偏移
coordinates3D[0] = coordinates2D[0];
coordinates3D[1] = coordinates2D[1];
coordinates3D[2] = (USHORT*)(LockedRect.pBits)
[(int)coordinates2D[1] * Width + (int)coordinates2D[0]] >> 3;
我不認爲這是獲得深度的正確公式。 我能夠在深度視圖中可視化2D興趣點。如果我在紅外視圖中得到一個點(x,y),那麼我在深度視圖中將它繪製爲(x,y)
的深度視圖中的紅色點我注意到紅色點並不是我期望它們的位置一個東西)。他們的位置存在系統性錯誤。
我認爲深度視圖和紅外視圖具有一對一的對應關係,不同於顏色視圖和深度視圖之間的對應關係。
這是真的,還是IR和深度視圖之間有偏移?如果有偏移量,我能以某種方式獲得正確的深度值嗎?
感謝您的回覆。實際上,有一個獨立於深度視圖的獨特IR視圖。我將發佈顯示兩個視圖的標準Kinect Explorer應用程序的屏幕截圖。通過並排查看圖像,它們似乎與無偏移量具有一對一的對應關係;我想確認這是一個事實,而不僅僅是一個觀察。 –
我已根據您的圖片發佈更新了我的答案。 –
深度視圖可用於推斷位置(x,y)處的深度,而IR視圖不能用於直接進行此操作。通過將紅外圖像與標準斑點圖案進行比較來處理紅外圖像來推斷深度,然後顯示紅外圖像,以便深度視圖中的像素強度顯示物理深度。因此,將深度視圖稱爲IR視圖的彩色版本並不準確。此外,紅外視圖是由Kinect的紅外接收器捕獲的真實圖像,可用於計算機視覺算法,而深度視圖主要用於僅推測深度。 –