小编oRo*_*ole的帖子

C#和Kinect v2:获取适合深度像素的RGB值

我用Kinect v2和C#玩了一下,试图得到一个512x424像素大小的图像阵列,其中包含深度数据以及相关的颜色信息(RGBA).

所以我用这个MultiSourceFrameReader班来接收MultiSourceFrame我得到的ColorFrameDepthFrame.通过这些方法ColorFrame.CopyConvertedFrameDataToArray(),DepthFrame.CopyFrameDataToArray()我收到了包含颜色和深度信息的数组:

// Contains 4*1920*1080 entries of color-info: BGRA|BGRA|BGRA..
byte[] cFrameData = new byte[4 * cWidth * cHeight];
cFrame.CopyConvertedFrameDataToArray(cFrameData, ColorImageFormat.Bgra);

// Has 512*424 entries with depth information
ushort[] dFrameData = new ushort[dWidth* dHeight];
dFrame.CopyFrameDataToArray(dFrameData);
Run Code Online (Sandbox Code Playgroud)

现在,我必须将ColorFrame-data-array中的颜色四倍映射到DepthFrame-data-array cFrameData的每个条目,dFrameData但这就是我被卡住的地方.输出应该是阵列大小的4倍(RGBA/BGRA)的dFrameData数组,并包含深度帧的每个像素的颜色信息:

// Create the array that contains the color information for every depth-pixel
byte[] dColors = new byte[4 * dFrameData.Length];
for (int i = 0, j = …
Run Code Online (Sandbox Code Playgroud)

c# colors depth kinect-sdk kinect-v2

12
推荐指数
1
解决办法
706
查看次数

C#和Kinect v2:将Kinect-pointcloud与3D对象的pointcloud合并

目前我正在开发一个C#项目来合并可以使用Kinect SDK从Kinect-v2设备检索的颜色和深度信息,其中包含可以从三维对象文件(.obj ,. stl,依此类推..)因此,我想创建一个像素点云,其中包含两者的信息 - 来自Kinect设备的坐标和颜色信息以及来自目标文件的信息.

到目前为止我做了什么?

  • 我设法设置了两个像素阵列Pixel[]来保存所需的数据(X/Y/Z坐标,以及相关的颜色信息RGB).
  • 一个数组包含Kinect数据,而另一个数组包含
    目标文件的数据.

    public class Pixel 
    {
         public double X { get; set; }
         public double Y { get; set; }
         public double Z { get; set; }
         public byte R { get; set; }
         public byte G { get; set; }
         public byte B { get; set; }
    }
    
    Run Code Online (Sandbox Code Playgroud)

为了获得颜色和深度信息以及设置Kinect数组,我首先使用Kinect-SDK的MultiSourceFrameReader类来获取MultiSourceFrame...

MultiSourceFrame multiSourceFrame = e.FrameReference.AcquireFrame();
Run Code Online (Sandbox Code Playgroud)

..所以我可以在那之后获取颜色/深度框架:

DepthFrame depthFrame = multiSourceFrame.DepthFrameReference.AcquireFrame();
ColorFrame colorFrame = multiSourceFrame.ColorFrameReference.AcquireFrame();
Run Code Online (Sandbox Code Playgroud)

通过这些方法.CopyConvertedFrameDataToArray(), …

c# 3d wpf point-clouds kinect-v2

7
推荐指数
0
解决办法
422
查看次数

标签 统计

c# ×2

kinect-v2 ×2

3d ×1

colors ×1

depth ×1

kinect-sdk ×1

point-clouds ×1

wpf ×1