gpt4 book ai didi

.net - 以高分辨率从网络摄像头捕获图片,同时使用 DirectShow.Net 以较低的分辨率进行预览

转载 作者:行者123 更新时间:2023-12-04 08:55:42 25 4
gpt4 key购买 nike

我正在使用 DirectShow.Net 将网络摄像头流式传输到我的 C# (4.0) 应用程序以读取 QR 码。它每 0.5 秒拍摄一次快照,以查看是否可以找到任何 QR 码并对其进行解码。这在我的开发计算机上以任何分辨率都可以很好地使用我的网络摄像头,但是当我在目标机器(Panasonic 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 的所有东西一起工作)。

  • 谢谢你的帮助。

    最佳答案

  • 您可以使用 SmartTee 或 InfiniteTee 拆分流,但我不确定拆分后如何更改分辨率。
  • 不知道该怎么做。
  • 您可以捕获图像并使用 SampleGrabber 手动将它们放入图片框中。然后,您可以完全控制帧何时显示在图片框中。
  • 如果您想要 XP 及更高版本,则需要使用 DirectShow。 MediaFoundation(现代替代方案)仅适用于 Vista 及更高版本。

  • 我的应用程序当前正在以与用户看到的视频分辨率不同的分辨率捕获图像。我这样做是因为我使用的网络摄像头 (Logitech C920) 有一个 Capture pin 和一个 Still pin,它们有不同的视频格式列表。我能够独立获得每个引脚的一组分辨率,并更改我需要的分辨率。我的应用程序只关心 Still pin 的分辨率,所以我更改了 Capture pin 始终保持在 640 x 480 的分辨率。我相信 SmartTee 应该可以在不需要 Still 引脚的情况下执行类似的操作,但我不是 DirectShow 专家,因此需要其他人向您填写该信息。

    关于.net - 以高分辨率从网络摄像头捕获图片,同时使用 DirectShow.Net 以较低的分辨率进行预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18039130/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com