我有一个Windows Form C#程序,该程序使用DirectShow .NET库以大约每秒20帧以上的速度从网络摄像头获取恒定的静态图像流。每个图像都加载到System.Drawing.Bitmap对象中,并使用一些过滤器和逻辑进行处理。结果将以图片框形式显示给用户,以相同的帧速率从网络摄像头捕获或以JPEG格式保存到磁盘。
除捕获本身外,一切正常。在连续拍摄静止图像一段时间后(从几分钟到几小时),我开始从DirectShow .NET获取异常,但仍然捕获超时,或者只是崩溃,整个程序停止工作。
我试图处理DirectShow .NET资源并重新获取它们,但在某些情况下,程序会等待处理完成或重新获取。
我不知道我是否通过使用静态捕获来做到这一点,或者是否有其他方法可以通过DirectShow .NET或任何其他技术从相机访问每个帧来执行所描述的操作在长时间不间断工作后不会造成任何问题的处理。
我不需要一直向用户显示已处理的视频帧,因此,我无法一直显示预览窗口。当用户未进行监视时,程序会以JPEG格式将帧保存到磁盘。
关于可能出现什么问题的任何建议,或者我是否应该转换到其他技术进行捕获(如果是,建议和信息是受欢迎的)?