我正在从下面的代码中收集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的输出,它给了我一系列图像,我真的不知道如何把它变成我可以从其他应用程序显示的实时流。
感谢任何帮助!
答案 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中提取深度数据时,此页面将非常有用:
如果您正在使用处理,则可以导入支持视频捕获的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/
一切顺利,如果您发现任何其他方法,请告知我们。