我正在使用 DirectShow.Net 将网络摄像头流式传输到我的 C# (4.0) 应用程序以读取 QR 码。它每 0.5 秒拍摄一次快照,以查看是否可以找到任何 QR 码并对其进行解码。这在我的开发计算机上以任何分辨率都可以很好地使用我的网络摄像头,但是当我在目标机器(松下 CF-U1 Toughbook - Intel Atom 处理器)上尝试它时,当我转到更高的分辨率时它真的开始陷入困境在网络摄像头上超过 800x600。
我正在使用 DirectShow.Net DxSnap 示例(命名空间快照)中的 Capture 类。我正在向它传递一个 Picturebox 来绘制预览。我很确定这是使系统陷入困境的原因(猜测视频卡无法胜任任务)。我需要绘制预览图(以便用户可以看到他们正在尝试扫描的内容),但它不必与为查找 QR 码而拍摄的图片具有相同的分辨率。由于该程序是为具有低屏幕分辨率的设备制作的,因此预览框最大为 320 x 240(我确实根据相机上选择的分辨率调整了纵横比)。
所以我想我正在寻找的是以下任何一个:
一种让两个流来自同一个网络摄像头的方法,一个用于预览的低分辨率,一个用于捕获的高分辨率
与此等价的东西,可能会在将分辨率写入图片框之前降低分辨率(再次使用 DirectShow.Net 项目中 DxSnap 示例中的 Capture 类)
一种让图片框不被刷新太多的方法
DirectShow.Net 以外的其他东西用于这种事情(它必须与桌面空间中从 Windows XP 到 Windows 8 的所有东西一起工作)。
谢谢你的帮助。