在WPF上流式传输从Kinect RGB相机接收的连续图像?

时间:2011-08-31 08:21:44

标签: c# wpf image streaming kinect

我正在从下面的代码中收集Kinect的RGB相机的连续图像;

        PlanarImage Image = e.ImageFrame.Image;
        video.Source = BitmapSource.Create(
            Image.Width, Image.Height, 96, 96, PixelFormats.Bgr32, null, Image.Bits, Image.Width * Image.BytesPerPixel);

我想将我从Kinect获得的一系列图像作为我的WPF应用程序上的实时流进行流式处理,但我不知道如何操作。原因是我希望能够将Kinect用作网络摄像头,但其他解决方案(编写一个directshow过滤器,或仅使用一个可用的过滤器)对我来说无法解决或者我对C ++问题缺乏了解。为Kinect编写一个直接显示过滤器作为虚拟摄像头对于我的C ++级别的人来说是极具挑战性的。

总而言之,问题在于Kinect的输出,它给了我一系列图像,我真的不知道如何把它变成我可以从其他应用程序显示的实时流。

感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

DirectShow确实是你最好的选择。 WPF中没有任何内容可以将视频流式传输到其他应用程序。

答案 1 :(得分:2)

如果商业图书馆是一个选项,请查看http://www.visioforge.com/video-capture-sdk-net2.html - 它可以捕获并在WMV中流式传输......

另一个商业选择是Leadtools Videostreaming SDK - 请参阅http://www.leadtools.com/sdk/video-streaming.htm

答案 2 :(得分:1)

如上面的评论所述,Kinect会生成一系列图像,而不是生成流式视频。

从Microsoft Kinect SDK中的Kinect中提取深度数据时,此页面将非常有用:

http://www.i-programmer.info/programming/hardware/2714-getting-started-with-microsoft-kinect-sdk-depth.html

如果您正在使用处理,则可以导入支持视频捕获的SimpleOpenNI库(https://code.google.com/p/simple-openni/)(您可以在库中找到示例)。

此视频流采用.ONI格式,可通过以下库转换为AVI: http://kirilllykov.github.io/blog/2013/03/19/convert-openni-star-dot-oni-files-into-avi/

一切顺利,如果您发现任何其他方法,请告知我们。