2011-01-31 181 views
27

我最近開始對我的Kinect進行黑客入侵,並且想要移除深度陰影。這個影子是由紅外線發射器放置在相機的一側,所以任何近距離的物體都會得到一個很大的陰影,遠處的物體很少或沒有陰影。刪除Kinect深度陰影

陰影長度與陰影兩側最近和最遠點之間的距離有關。

我的目標是能夠正確地將彩色圖像映射到深度。
enter image description here

+0

也許某種梯形調整會起作用嗎? – chriszero 2011-01-31 14:18:15

+2

對於像我這樣的Kinectless,它可以幫助您更清楚地瞭解您需要使用哪些數據。這聽起來像是你有一個來自相機的像素網格和距離紅外發射器相應的距離網格。對? – 2011-01-31 20:36:12

+0

我有你在兩張照片中看到的數據。黑色區域是帶有顏色0的陰影。其餘的顏色值取決於距離。 – 2011-02-02 16:32:03

回答

0

Kinect的方法 - MapDepthFrametoColorFrame

獲取[x,y]在深度框架中的位置,並使用該方法來填充

3

是否深度陰影總是出來黑色:這不不處理的影子,因爲這圖爲工作?

如果是這樣,您可以使用像時間中位數這樣的簡單方法來計算圖像的背景(更多信息請參見:http://www.roborealm.com/help/Temporal_Median.php),然後每當像素爲黑色時,將其設置爲該像素位置的背景值。

2

我不知道它是如何與C#但openni c + +有一個函數稱爲xnSetViewPoint()唯一的問題是,你失去前20行左右imagedata由於轉換。

原因是由於使用了兩個不同的傳感器,它們彼此靠近放置,但不完全在同一位置。

3

幾周前我對這個問題做了一些初步的工作。我的代碼直接在WriteableBitmap而不是深度數據上工作,但如果您只是在進行圖像處理,它應該可以工作。該算法並不完美,並將受益於一些更多的調整。如果您更新代碼,請告訴我;我很樂意看到你在做什麼!

的源代碼發佈在我的博客:

http://richardpianka.com/2011/02/trackingni-depth-correction/

0

我很抱歉地說,但那個黑影是由你的身體撞擊房間的現貨所以它創建阻斷推斷點引起的一個黑點......什麼可以做,但改變基本背景,黑色以外的顏色不同,所以它不會出現明顯的陰影

0

彩色相機和kinect深度相機不具有相同的尺寸,並且紅外點的來源不是來自相同的凸輪,其IR投影儀a距離它幾釐米(因爲這個位移用來計算深度)。

然而,解決方案在這裏很容易接近,您的影子數據位於左側。 ,因此您需要在最後一次已知顏色數據變黑之前將其延長。

爲了更好地適應它,請將彩色凸輪數據移到右側。