Kinect红外灰色像素格式转换为8bpp。

3
我们的目标是从Kinect传来的红外图像制作电影。我们正在使用AForge videowriter,我们已经有了用于处理普通RGB流(RgbResolution640x480Fps30)的工作代码。
查看文档(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索引图像?
  • 是否可以将来自Kinect的16(10??)位图像转换为8 bpp索引图像?
  • 或者让AForge也接受16位图像

谢谢!

2个回答

0
AForge可以为您转换为8位图像:
Bitmap grayImage8bit = AForge.Imaging.Filters.Grayscale.CommonAlgorithms.BT709.Apply(original_bitmap);

我一直在使用这个工具将32位rgba位图进行转换。


0

Kinect应该能够在16位样本中提供11位分辨率的深度或z。为了解决这个问题,您可以通过2^3=8来除以样本,这将产生钝化的结果,或者使用类似于HDR摄影中使用的色调映射技术。考虑到Kinect对近距离物体和远距离物体的分辨率不同(请参见此StackOverflow问题),因此可以在11b样本和8b降低分辨率之间使用非线性映射,如OpenKinect Wiki所述。

在Aforge上,我认为支持8位灰度、24位RGB(每平面8位)和32位RGBA(每平面8位)是很常见的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接