2013-12-17 58 views
3

我們的目標是從Kinect的紅外圖像製作電影。我們正在使用AForge videowriter,我們已經有工作代碼來處理正常的RGB流。 (RgbResolution640x480Fps30)Kinect紅外灰色像素格式轉換爲8bpp

查看文檔(http://msdn.microsoft.com/en-us/library/microsoft.kinect.colorimageformat.aspx)圖像是16位格式,但只使用前10個?那麼我們有一個10位格式的圖像,或者它是如何工作的?

查看Aforge文檔只接受以下格式:24或32 bpp圖像或灰度8 bpp(索引)圖像。 (http://www.aforgenet.com/framework/docs/html/84a560df-bfd5-e0d6-2812-f810b56a254d.htm

  • 爲什麼只有8 BPP索引圖像接受?
  • 是否有可能到16(10-6)位來自Kinect的圖像變換爲8 BPP索引圖像
  • 或許讓AForge接受16位的圖像,以及

謝謝!

回答

0

Kinect應該產生深度或z位分辨率爲11位的16位採樣。要解決這個問題,您可以將樣本分爲2^3=8,這會產生鈍的結果,或者使用HDR攝影中使用的技術等tone mapping技術。考慮到Kinect不像近距離物體具有相同的分辨率(見this StackOverflow question),因此在11b採樣和8b降低分辨率之間可以使用非線性映射,如the OpenKinect Wiki中所述。

在Aforge上,我認爲支持8位灰度,24位RGB(每個8位)和32位RGBA(每個平面8位)是很常見的。

0

AForge可以轉換成8位圖像爲您提供:

Bitmap grayImage8bit = AForge.Imaging.Filters.Grayscale.CommonAlgorithms.BT709.Apply(original_bitmap); 

我一直在使用這種轉換的32個RGBA位圖。