[英]Kinect Infrared gray Pixelformat converting to 8bpp
我们的目标是使用来自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 )
谢谢!
Kinect应该产生16位样本中包含11位分辨率的深度或z。 若要解决此问题,您可以将样本除以2^3=8
,这将产生钝的结果,或使用像HDR摄影中使用的色调映射技术。 最后一个是有意义的,因为Kinect对于近距离物体的分辨率与远距离物体没有相同的分辨率(参见此StackOverflow问题 ),因此可以在11b样本和8b降低分辨率之间使用非线性映射,如下所述在OpenKinect Wiki中 。
在Aforge上,我会说支持8位灰色,24位RGB(每平面8位)和32位RGBA(每平面8位)是很常见的。
AForge可以为您转换为8位图像:
Bitmap grayImage8bit = AForge.Imaging.Filters.Grayscale.CommonAlgorithms.BT709.Apply(original_bitmap);
我一直用它来转换32位rgba位图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.