Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用DirectShow.Net以高分辨率从网络摄像头捕获图片,同时以较低分辨率预览_.net_C# 4.0_Webcam_Qr Code_Directshow.net - Fatal编程技术网

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

使用DirectShow.Net以高分辨率从网络摄像头捕获图片,同时以较低分辨率预览,.net,c#-4.0,webcam,qr-code,directshow.net,.net,C# 4.0,Webcam,Qr Code,Directshow.net,我正在使用DirectShow.Net将网络摄像头传输到我的C#(4.0)应用程序,以读取二维码。它每0.5秒拍一次快照,看看是否能找到二维码并解码。这在我的开发计算机上以任何分辨率运行都很好,但当我在目标机器(松下CF-U1 Toughbook-英特尔Atom处理器)上尝试时,当我在网络摄像头上使用高于800x600的分辨率时,它真的开始陷入困境 我正在使用DirectShow.Net DxSnap示例(命名空间快照)中的捕获类。我正在给它递一个画框来画预览。我很确定这就是使系统陷入困境的原因

我正在使用DirectShow.Net将网络摄像头传输到我的C#(4.0)应用程序,以读取二维码。它每0.5秒拍一次快照,看看是否能找到二维码并解码。这在我的开发计算机上以任何分辨率运行都很好,但当我在目标机器(松下CF-U1 Toughbook-英特尔Atom处理器)上尝试时,当我在网络摄像头上使用高于800x600的分辨率时,它真的开始陷入困境

我正在使用DirectShow.Net DxSnap示例(命名空间快照)中的捕获类。我正在给它递一个画框来画预览。我很确定这就是使系统陷入困境的原因(猜测视频卡无法完成任务)。我需要绘制预览图(这样用户可以看到他们试图扫描的内容),但它不必与查找二维码时拍摄的图片具有相同的分辨率。由于该程序是为屏幕分辨率较低的设备制作的,因此预览框的最大值为320 x 240(我会根据相机上选择的分辨率调整纵横比)

所以我想我要找的是以下任何一个:

  • 一种让两个流从同一个网络摄像头传输的方法,一个是低分辨率的 用于预览,一个用于高分辨率捕获

  • 与此相当的是,可能在将分辨率写入图片框之前降低分辨率(再次使用DirectShow.Net项目中DxSnap示例中的捕获类)

  • 一种防止图片框刷新过多的方法

  • 除了DirectShow.Net之外的其他东西可以用来做这类事情(它必须在桌面空间中处理从Windows XP到Windows 8的所有东西)

  • 谢谢你的帮助

  • 您可以使用SmartTee或InfiniteTe分割流,但我不确定分割后如何更改分辨率
  • 不知道怎么做
  • 您可以捕获图像并使用SampleGrabber手动将其放入图片框中。然后,您可以完全控制帧何时显示在图片框中
  • 如果您想要XP及以上版本,则需要使用DirectShow。MediaFoundation(现代替代品)只是Vista和up

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

    您有没有想过?