我们的目标是使用来自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)
谢谢!
答案 0 :(得分:0)
Kinect应该产生16位样本中包含11位分辨率的深度或z。要解决此问题,您可以将样本除以2^3=8
,这会产生钝的结果,或者使用像{h>摄影中使用的tone mapping技术。最后一个是有意义的,因为Kinect对于靠近物体的近距离具有与远距离物体相同的分辨率(参见this StackOverflow question),因此可以在11b样本和8b之间使用非线性映射。降低分辨率,如the OpenKinect Wiki中所述。
在Aforge上,我说它通常支持8位灰色,24位RGB(每平面8位)和32位RGBA(每平面8位)。
答案 1 :(得分:0)
AForge可以为您转换为8位图像:
Bitmap grayImage8bit = AForge.Imaging.Filters.Grayscale.CommonAlgorithms.BT709.Apply(original_bitmap);
我一直用它来转换32位rgba位图。