【问题标题】:C# + DirectShow.NET = Simple WebCam access?C# + DirectShow.NET = 简单的网络摄像头访问?
【发布时间】:2009-05-07 09:34:27
【问题描述】:

我找到了一个example,用于访问 C# 中的网络摄像头。该示例使用DirectShow.NET 库。我试图理解代码,但到目前为止,我唯一能弄清楚的是,用户控件以某种方式调用 directshow 以直接绘制到用户控件的表面。

我想访问每一帧并将其放入 Bitmap 对象中。如何判断新框架何时到达?如何将这个新帧捕获到位图对象中?

如果您熟悉 DirectShow.NET,这可能很容易回答。

【问题讨论】:

  • 现在 DirectShow.NET 是一个死项目。对不起...

标签: c# directshow webcam directshow.net


【解决方案1】:

您将需要使用ISampleGrabber 接口,网上有很多关于如何使用它的 c++ 示例,它会为您提供 RGB 原始格式的数据,您可以将这些数据输入 Bitmap 类。

还有一个名为Touchless 的开源库,它有一个代码项目,该项目采用网络摄像头并在每次新帧到达时给您一个回调。

【讨论】:

  • 你能告诉我在哪里可以获得编译非接触式 WebCamLib 所需的 qedit.h 吗?我已经下载了 windows sdk 和 directx sdk,但在任何地方都找不到。
  • 知道问题,您需要旧的 2007 年 8 月 DirectX SDK。 microsoft.com/downloads/…
  • 我已经安装了 2007 年 8 月的 SDK,但是在包含目录或其他任何地方都没有找到 qedit.h。
  • 我编译WebCamLib的经验:你需要下载一个~222M的文件“dx9sdk.exe”,它是一个非常古老的directx 9 sdk(2002),谷歌搜索文件名会帮助你。在包含目录中安装后,您将找到 qedit.h。您必须在 WebCamLib 的项目属性中指定此目录。确保在Release中编译,否则Vista会哭。此外,您可能会遇到错误,并且必须将 POINTER_64 常量更改为 __ptr64。
  • 成功!谢谢,Touchless 帮了大忙 :)
【解决方案2】:

一定要看看这篇文章——http://www.codeproject.com/Articles/125478/Versatile-WebCam-C-library;它基于 Touchless WebCam 捕获组件(但没有 Touchless SDK 的其他部分)。

【讨论】:

  • @fretje tnx 通知,现已修复
【解决方案3】:

如果您发现 Touchless 有用,但想使用最新的 DirectX SDK,请尝试在 http://touchless.codeplex.com/SourceControl/ListDownloadableCommits.aspx 更改 31008 后获取最新的源代码

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多