【问题标题】:Kinect v2 color depth mapping using C#使用 C# 的 Kinect v2 颜色深度映射
【发布时间】:2015-04-06 21:09:58
【问题描述】:

我正在尝试使用 sdk 中的 coordinateMapper 函数将深度图映射到色彩空间。但是,我收到的输出不是我所期望的,它似乎具有较小的纵横比,并且图像似乎是镜像的。

下面是我使用的代码:

depthWidth = depthFrameDescription.Width;
depthHeight = depthFrameDescription.Height;

var colorDesc = colorFrame.FrameDescription;
int colorWidth = colorDesc.Width;
int colorHeight = colorDesc.Height;

int size = colorWidth * colorHeight;

DepthSpacePoint[] colSpacePoints = new DepthSpacePoint[colorWidth * colorHeight];

using (KinectBuffer depthFrameData = depthFrame.LockImageBuffer())
using (KinectBuffer colorBuffer = colorFrame.LockRawImageBuffer())
{
    this.bitmap.Lock();

    if ((colorWidth == this.bitmap.PixelWidth) && (colorHeight == this.bitmap.PixelHeight))
    {
        byte[] colorFrameData = new byte[size * bytesPerPixel];       

        // Map the values here
        ushort [] frameData = new ushort[depthWidth * depthHeight];
        depthFrame.CopyFrameDataToArray(frameData);
        coordinateMapper.MapColorFrameToDepthSpace(frameData, colSpacePoints);

        this.bitmap.WritePixels(new Int32Rect(0, 0, colorWidth, colorHeight), colSpacePoints, colorWidth * bytesPerPixel, 0);
        this.bitmap.AddDirtyRect(new Int32Rect(0, 0, this.bitmap.PixelWidth, this.bitmap.PixelHeight));
    }    
    this.bitmap.Unlock();
}

this.bitmapBackBufferSize = (uint)![enter image description here][1]((this.bitmap.BackBufferStride * (this.bitmap.PixelHeight - 1)) + (this.bitmap.PixelWidth * this.bytesPerPixel));
isBitmapLocked = true;

【问题讨论】:

    标签: c# kinect kinect-sdk


    【解决方案1】:

    如果您尝试将深度框架的坐标映射到颜色框架,则缺少一步。

    这是一个链接,我可以更好地解释它: http://www.bryancook.net/2014/03/mapping-between-kinect-color-and-depth.html

    但是在你使用的情况下

    coordinateMapper.MapColorFrameToDepthSpace(frameData, colSpacePoints);
    

    输出不会以您如何使用它的方式使用。此函数的输出包含颜色空间和深度空间中存在的所有点。所以为了显示这些,你想遍历你的 colSpacePoints 并对每个结果做一些事情,在我链接的例子中,它被称为 _colorSpacePoints 所以你可以看看他用它做了什么。

    我一直在尝试做一些可能与您正在做的事情类似的事情,但是几天后我发现了如何正确使用映射。如果您需要更多帮助来解决您的问题,请告诉我您想在 WriteableBitmap 中显示什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      相关资源
      最近更新 更多