在 .Net Core 2.0 中从网络摄像头捕获图像
Capturing image from WebCam in .Net Core 2.0
我正在 Raspberry Pi 上 运行 在 .Net Core 2.0 中开发应用程序,即 运行ning Win 10 IoT。 Pi 连接了一个 USB 网络摄像头,我想从相机中捕捉静止图像。不幸的是,至少可以说这有点麻烦。
首先,我通过 .Net Core 2.0 库进行了很好的搜索,看看是否有任何东西可以提供此功能,但没有任何运气。
我的第二个查询是 NuGet,看看是否有任何第三方库可以完成这项工作。 EmguCV 有一段时间看起来很有前途,但他们似乎还不支持 .Net Core。
最后我用谷歌搜索了任何可能完成这项工作的东西,并在 Windows.Media.Capture 中找到了适用于 UWP 的 MediaCapture class,但我没有成功从我的 .Net Core 控制台应用程序中引用它.您似乎可以从 UWP 解决方案中引用 .Net Core 程序集,但我还没有找到相反的方法。
请记住,我更愿意将我的项目保留在 .Net Core 2.0 中,而不是为 UWP 重新编写,我正在寻找从网络摄像头捕获静止图像的任何方法。我们将不胜感激地收到任何指示,因为事实证明这令人非常沮丧。
实际上对于捕获图像和其他图像处理活动,可能您可以尝试 OpenCvSharp。
它支持.Net 核心。
https://github.com/shimat/opencvsharp
Nuget 包 可用(在上面 link 中查找更多详细信息)。
这里是一个捕获视频的例子。
https://github.com/shimat/opencvsharp/wiki/%5BCpp%5D-Capturing-Video
如果您将 0(零)作为输入传递给 VideoCapture
,它应该会打开默认相机。
像这样(没试过):
VideoCapture capture = new VideoCapture(0); //assumption based on how actual openCV works.
您可以在任何点网应用程序(核心、框架、标准)上引用通用 windows 应用程序的核心库(Windows.Media.winmd、Windows.Security.winmd 等)。我已经做了。但是,'await' 将一团糟,因此您将不得不解决使用 await 和 async 的问题(即手动等待任务)。
Windows.Media 有微软的 api 可以对着摄像头说话。
我不确定通用应用程序是否适用于 Raspberry Pi 你。
由于您在 Raspberry 上使用 Win 10 IoT,请尝试使用 Microsoft Git 中提供的 "Intelligent Kiosk" 示例程序。它提供了一个 UWP 应用程序(源代码),它具有良好的相机控制和更多自定义选项。这是 C#。如果你想要 VB 版本,你可以 ping 我。
IK 代码使用您可能感兴趣的 Azure 认知服务做更多事情。
我正在 Raspberry Pi 上 运行 在 .Net Core 2.0 中开发应用程序,即 运行ning Win 10 IoT。 Pi 连接了一个 USB 网络摄像头,我想从相机中捕捉静止图像。不幸的是,至少可以说这有点麻烦。
首先,我通过 .Net Core 2.0 库进行了很好的搜索,看看是否有任何东西可以提供此功能,但没有任何运气。
我的第二个查询是 NuGet,看看是否有任何第三方库可以完成这项工作。 EmguCV 有一段时间看起来很有前途,但他们似乎还不支持 .Net Core。
最后我用谷歌搜索了任何可能完成这项工作的东西,并在 Windows.Media.Capture 中找到了适用于 UWP 的 MediaCapture class,但我没有成功从我的 .Net Core 控制台应用程序中引用它.您似乎可以从 UWP 解决方案中引用 .Net Core 程序集,但我还没有找到相反的方法。
请记住,我更愿意将我的项目保留在 .Net Core 2.0 中,而不是为 UWP 重新编写,我正在寻找从网络摄像头捕获静止图像的任何方法。我们将不胜感激地收到任何指示,因为事实证明这令人非常沮丧。
实际上对于捕获图像和其他图像处理活动,可能您可以尝试 OpenCvSharp。
它支持.Net 核心。
https://github.com/shimat/opencvsharp
Nuget 包 可用(在上面 link 中查找更多详细信息)。
这里是一个捕获视频的例子。
https://github.com/shimat/opencvsharp/wiki/%5BCpp%5D-Capturing-Video
如果您将 0(零)作为输入传递给 VideoCapture
,它应该会打开默认相机。
像这样(没试过):
VideoCapture capture = new VideoCapture(0); //assumption based on how actual openCV works.
您可以在任何点网应用程序(核心、框架、标准)上引用通用 windows 应用程序的核心库(Windows.Media.winmd、Windows.Security.winmd 等)。我已经做了。但是,'await' 将一团糟,因此您将不得不解决使用 await 和 async 的问题(即手动等待任务)。
Windows.Media 有微软的 api 可以对着摄像头说话。
我不确定通用应用程序是否适用于 Raspberry Pi 你。
由于您在 Raspberry 上使用 Win 10 IoT,请尝试使用 Microsoft Git 中提供的 "Intelligent Kiosk" 示例程序。它提供了一个 UWP 应用程序(源代码),它具有良好的相机控制和更多自定义选项。这是 C#。如果你想要 VB 版本,你可以 ping 我。
IK 代码使用您可能感兴趣的 Azure 认知服务做更多事情。