9 个不稳定版本 (3 个破坏性版本)
0.4.0 | 2022年9月25日 |
---|---|
0.3.0 | 2022年9月15日 |
0.2.6 | 2020年10月7日 |
0.2.5 | 2020年9月1日 |
0.1.0 | 2020年8月24日 |
#776 in 机器学习
每月33次 下载
用于 3 个crate(2 个直接使用)
4.5MB
82K SLoC
openpnp-capture
OpenPnP Capture 是一个跨平台视频捕获库,专注于机器视觉。其目标是
- 在 Windows、Linux 和 Mac 上提供原生相机访问。分别使用 DirectShow、V4L2 和 AVFoundation 实现。
- 命名设备枚举。
- 强大、可重复的唯一 ID。
- 格式控制,支持至少 YUV 和 MJPEG。MJPEG 允许在单个集线器上使用多个 USB 相机。
- 自动和手动曝光控制。
- 自动和手动对焦控制。
- 简单的常见 C 包装器,用于列出的 API。
状态
Windows
功能 | 实现 |
---|---|
设备枚举 | 是 |
捕获 | 是 |
MJPEG 格式 | 是 |
YUV 格式 | 是 |
曝光控制 | 是 |
对焦控制 | 是 / 未测试 |
变焦控制 | 是 |
增益控制 | 是 |
白平衡控制 | 是 |
帧率控制 | 否 |
Linux
功能 | 实现 |
---|---|
设备枚举 | 是 |
捕获 | 是 |
MJPEG 格式 | 是 |
YUV 格式 | 是,YUYV/YUV2 |
曝光控制 | 是 |
对焦控制 | 是 / 未测试 |
变焦控制 | 是 |
增益控制 | 是 / 未测试 |
白平衡控制 | 是 |
帧率控制 | 否 |
OSX
功能 | 实现 |
---|---|
设备枚举 | 是 |
捕获 | 是 |
MJPEG 格式 | 是(dmb1) |
YUV 格式 | 是 |
曝光控制 | 是 / 实验 |
对焦控制 | 是 / 实验 |
变焦控制 | 是 / 实验 |
增益控制 | 是 / 实验 |
白平衡控制 | 是 / 实验 |
帧率控制 | 否 |
待办事项
- 支持重新枚举。
构建 OpenPnP Capture
依赖关系
- CMAKE 3.1 或更高版本
- MAKE(osx、linux)
- Visual Studio 2013 + NMake 或 Ninja Build(windows)
- NASM 构建libjpeg-turbo(linux)
- libgtk-3-dev(linux,测试程序)
构建说明(Windows)
运行批处理文件 'bootstrap.bat' 并选择所需的构建系统(VisualStudio/nmake 或 Ninja)。确保编译器(Visual Studio)在搜索路径中。
转到构建目录并运行 nmake 或 ninja 以构建库和测试应用程序。
构建说明(OSX)
运行 'bootstrap_osx.sh'。运行 make。
构建说明(Linux)
运行 'bootstrap_linux.sh'。运行 make。
支持其他平台
- 实现所有PlatformXXX类,例如在win或linux目录中。
- PlatformContext负责处理设备以及内部帧缓冲格式枚举。
- PlatformStream负责捕捉和解码摄像头流到8位每通道的RGB帧缓冲。
- 静态链接外部依赖。
发布
所有支持的平台都会自动构建发布版本。请查看https://github.com/openpnp/openpnp-capture/releases/latest下载最新版本。
平台说明
MacOS
截至MacOS 10.15,打开摄像头需要摄像头权限。库将自动执行权限请求,但应用程序包中需要存在Info.plist文件。一个示例Info.plist文件为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSCameraUsageDescription</key>
<string>openpnp-capture needs permission to access the camera to capture images.</string>
</dict>
</plist>
您可以通过运行 tccutil reset Camera
来为测试目的在MacOS中重置摄像头权限。