如何使用 python 访问笔记本电脑的内置红外网络摄像头?

时间:2021-04-03 15:54:08

标签: python api opencv computer-vision

我正在尝试在 python 项目中访问我的笔记本电脑的内置红外网络摄像头(用于 windows hello)。我可以使用 OpenCV 中的 VideoCapture 类轻松访问普通 RGB 摄像头,但是找不到访问红外摄像头的方法。我尝试将不同的索引传递给 VideoCapture 类,但是只有“0”有效,这是普通的网络摄像头。

可以使用 Windows API 执行此操作,但是我找不到在 Python 中访问它的方法。

有些人已经能够使用 fswebcam 在 Ubuntu 上访问 windows hello 摄像头。

无论如何都可以使用python访问红外摄像头吗?也许某种方式使用 pywin32 与 Windows API 接口?任何帮助开始这将不胜感激。或者,是否有类似于 Windows 的 fswebcam 的东西可以让我做同样的事情?

2 个答案:

答案 0 :(得分:3)

您提供的那个示例似乎没有使用 win32 api,而是使用 dotnet 框架,特别是 Windows.Media.Capture.Frames.MediaFrameSourceGroup 类。

您似乎可以使用 http://pythonnet.github.io/ 访问 dotnet 框架。之后应该是将 C# 代码移植到 Python 的情况。

答案 1 :(得分:1)

您需要访问 WinRT API,而不是 Win32 API。

使用此库:https://github.com/Microsoft/xlang/tree/master/src/package/pywinrt/projection,您应该能够从您发布的代码中调用 WinRT 中的 invoke 必要部分。