gpt4 book ai didi

c# - 使用Kinect C#VS 2013保存彩色框

转载 作者:行者123 更新时间:2023-12-02 16:40:28 25 4
gpt4 key购买 nike

目前,出于后期处理的原因,我不仅试图保存骨骼数据,还试图保存彩色图像。当前,这是处理彩色视频并在UI中输出彩色图像的代码部分。我认为,这是必须保存色框图像的地方。

private void ColorFrameEvent(ColorImageFrameReadyEventArgs colorImageFrame)
{
//Get raw image
using (ColorImageFrame colorVideoFrame = colorImageFrame.OpenColorImageFrame())
{
if (colorVideoFrame != null)
{
//Create array for pixel data and copy it from the image frame
Byte[] pixelData = new Byte[colorVideoFrame.PixelDataLength];
colorVideoFrame.CopyPixelDataTo(pixelData);

//Set alpha to 255
for (int i = 3; i < pixelData.Length; i += 4)
{
pixelData[i] = (byte)255;
}

using (colorImage.GetBitmapContext())
{
colorImage.FromByteArray(pixelData);
}
}
}
}

我尝试阅读有关OpenCV,EmguCV和多线程的内容;但是我很困惑。最好在一个位置提供可靠的良好解释。但是,我觉得这样做的最好方法是不丢失每秒帧数,也许是将所有图像保存在数组列表中,然后在程序完成后进行一些后期处理以转换数组->图像->视频在Matlab中。

有人可以评论我如何将彩色图像流保存到文件中吗?

最佳答案

如果一切顺利,则每秒30秒(30fps)触发ColorImageFrameReady事件。我认为一次保存每张图片非常繁重。

我建议您使用Backgroundworker,您可以检查工作人员是否忙碌,如果不只是将字节传递给后台工作人员,则可以进行魔术处理。

您可以轻松地通过byte []保存或制作图像。只是谷歌这个。

http://www.codeproject.com/Articles/15460/C-Image-to-Byte-Array-and-Byte-Array-to-Image-Conv

How to compare two images using byte arrays

关于c# - 使用Kinect C#VS 2013保存彩色框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24642818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com