记录来自kinect传感器的RGB流

时间:2012-08-29 11:00:00

标签: c# kinect aforge

我正在做一个WPF应用程序,其中一个功能是从Kinect传感器录制视频(只有RGB流)(使用Aforge和SDK 1.5)。

在我的应用程序中,我有一个按钮,当点击它时,它应该将视频流保存到avi文件中。

我添加了引用并将所有.dll文件复制到我的项目文件夹中(如其他论坛中所述)但由于某种原因我收到此错误:

{"Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.":null}

因此private void button4_Click(object sender, RoutedEventArgs e)内部是以下代码:

        int width = 640;
        int height = 480;
        // create instance of video writer
        VideoFileWriter writer = new VideoFileWriter();

        // create new video file
        writer.Open("test.avi", width, height, 25, VideoCodec.MPEG4);

        // create a bitmap to save into the video file
        Bitmap image = new Bitmap (width, height, DrawingColor.PixelFormat.Format24bppRgb);


        for (int i = 0; i < 1000; i++)
        {
            image.SetPixel(i % width, i % height, Color.Red);
            writer.WriteVideoFrame(image);
        }
        writer.Close();
        }

我将非常感谢您的帮助,并且我也非常感谢您记录RGB流的方式(如果您推荐其他方式),只要它不复杂,因为我是新的C#

1 个答案:

答案 0 :(得分:1)

视频为红色的原因是因为您使用

将其变为红色
    for (int i = 0; i < 1000; i++)
    {
        image.SetPixel(i % width, i % height, Color.Red);
        writer.WriteVideoFrame(image);
    }

您应该做的是转换BitmapSource / WritableBitmap *(假设您使用BitmapSourceWritableBitmap显示Kinect的数据然后您只需将该位图添加到你的视频帧。希望这有帮助!

**如果您使用WritableBitmapconvert it to a BitmapImage,则convert that to a Bitmap *