【问题标题】:Kinect Infrared gray Pixelformat converting to 8bppKinect 红外灰度 Pixelformat 转换为 8bpp
【发布时间】:2013-12-17 14:29:46
【问题描述】:

我们的目标是利用来自 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 索引图像?
  • 是否可以将 16 (10??) 位图像从 Kinect 转换为 8 bpp 索引图像
  • 或者也许允许 AForge 也接受 16 位图像

谢谢!

【问题讨论】:

    标签: c# image-processing kinect video-processing aforge


    【解决方案1】:

    Kinect 应该以 11 位分辨率生成深度或 z,并打包在 16 位样本中。要解决此问题,您可以将样本除以2^3=8,这会产生钝的结果,或者使用类似于 HDR 摄影中使用的tone mapping 技术。最后一个是有道理的,因为 Kinect 对近距离物体的分辨率与对远处物体的分辨率不同(请参阅this StackOverflow question),因此可以在 11b 样本和 8b 降低分辨率之间使用非线性映射,如解释在the OpenKinect Wiki。

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

    【讨论】:

      【解决方案2】:

      AForge 可以为您转换为 8 位图像:

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

      我一直在使用它来转换 32 位 rgba 位图。

      【讨论】:

        猜你喜欢
        • 2019-02-10
        • 1970-01-01
        • 2019-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-03
        • 2021-12-13
        • 2018-07-16
        相关资源
        最近更新 更多