我正在开发一个WPF应用程序,其中一个控件显示图像流;很像任何网络摄像头。这些图像来自IP摄像机,只能通过HTTP Url访问,它是固定的并且始终是相同的。现在通过
捕捉图像没问题 BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.UriSource = uri;
bitmapImage.CacheOption = BitmapCacheOption.None;
bitmapImage.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
bitmapImage.EndInit();
return bitmapImage;
这很有用。当我试图连接几个摄像头(超过6个),应用程序窒息并最终崩溃时,问题就出现了。所有相机都在一个单独的线程上运行。
我已经确定了基本问题:创建一个(高级?)位图会占用太多资源,因为我需要应用程序最终实时处理大约600张图像/秒(约30Mb /秒)。
简而言之,我正在寻找一种方法来提高检索/渲染过程的效率。
提前致谢!
更新:
忘了提一下,或许在.NET 4 WPF中工作,相机本身就是Mobotix M12,可以通过以太网访问。
答案 0 :(得分:1)
所以,如果我做对了,每个相机的帧率为100 fps? (你提到600个图像/秒为6个凸轮)。 通过一些分析,您可以找出瓶颈吗?
答案 1 :(得分:0)
作为一个非常晚的更新,对于任何仍然感兴趣的人 - 我们使用aForge框架管理了一个实现http://www.aforgenet.com/aforge/framework
虽然已经过时了,但它可以开箱即用。