Opencv & OSX: USB 摄像头访问
Opencv & OSX: USB camera acess
我检查了所有相关问题,答案都是过时的(C API)或不是relevant/without真正的答案。
Opencv 3.0 版(通过自制软件)。
OS: OSX 塞拉
Opencv 运行 流畅,除了 VideoCapture::VideoCapture(int device).
无论我尝试什么参数,Videocapture 总是使用 iSight 摄像头。
我是不是漏掉了什么?
*注意:我不是开发人员,只是想找点乐子 *
作为 OSX 用户和 Opencv 用户,OSX 和 opencv 的问题经常发生。
(我不是在跟踪你,而是在关注你的进展)。
您的问题有一个 trick/fix。
您只需禁用并重新启用 iSight 摄像头,之后就可以访问您想要的任何摄像头。
第 0 步:
为您的 OSX 安装创建一个备份(您应该始终有一个)
第 1 步:
停用 SIP,如果您不确定自己在做什么但别无选择,则绝对不要这样做。
重新启动您的 mac,在启动过程中按 command+R。
UI 加载后,进入顶部栏并选择 utilty->terminal 并键入:
csrutil disable; reboot
这将禁用您的 SIP 并重新启动您的 mac 进入 "normal" 模式。
第 2 步:
sudo chmod a-r /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC
sudo chmod a-r /System/Library/PrivateFrameworks/CoreMediaIOServicesPrivate.framework/Versions/A/Resources/AVC.plugin/Contents/MacOS/AVC
sudo chmod a-r /System/Library/QuickTime/QuickTimeUSBVDCDigitizer.component/Contents/MacOS/QuickTimeUSBVDCDigitizer
sudo chmod a-r /Library/CoreMediaIO/Plug-Ins/DAL/AppleCamera.plugin/Contents/MacOS/AppleCamera
sudo chmod a-r /Library/CoreMediaIO/Plug-Ins/FCP-DAL/AppleCamera.plugin/Contents/MacOS/AppleCamera
第三步:(可选)
在opencv中测试,尝试时应该会出错
cv::VideoCapture上限(0);
错误是一段文本,告诉您没有 camera/drivers,这是正常的。
第四步:
重启
第五步:
sudo chmod a+r /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC
sudo chmod a+r /System/Library/PrivateFrameworks/CoreMediaIOServicesPrivate.framework/Versions/A/Resources/AVC.plugin/Contents/MacOS/AVC
sudo chmod a+r /System/Library/QuickTime/QuickTimeUSBVDCDigitizer.component/Contents/MacOS/QuickTimeUSBVDCDigitizer
sudo chmod a+r /Library/CoreMediaIO/Plug-Ins/DAL/AppleCamera.plugin/Contents/MacOS/AppleCamera
sudo chmod a+r /Library/CoreMediaIO/Plug-Ins/FCP-DAL/AppleCamera.plugin/Contents/MacOS/AppleCamera
第六步:
在opencv中重新测试;拔下你的 USB 摄像头试试:
cv::VideoCapture上限(1);
错误输出应该告诉您 cv::VideoCapture 中的范围是 0-0,而不是 xcode 默认告诉您的 0-1。
恭喜,您现在可以在 Xcode 和 Sierra 上的 opencv 中访问 USB/webcam。
第 7 步:(可选但强烈推荐)
重新激活您的 SIP(如果您不确定 mac terminal/download 中的操作 ,请执行此操作).
重新启动您的 mac 按 command+R,一旦 UI 出现在这里,选择 Utility->Terminal 并输入:
csrutil enable;
然后为您的 mac("OSX Serra - date - Opencv access Webcam" 或任何具有显式名称的名称)创建一个新的恢复点。
然后在终端输入:
reboot
第八步:享受。
一旦你有一个 opencv 设置 运行 并且如果你不使用 Objective-C/iDevice 编程你应该避免更新 Xcode 它往往会破坏opencv 安装相当困难
我检查了所有相关问题,答案都是过时的(C API)或不是relevant/without真正的答案。
Opencv 3.0 版(通过自制软件)。
OS: OSX 塞拉
Opencv 运行 流畅,除了 VideoCapture::VideoCapture(int device).
无论我尝试什么参数,Videocapture 总是使用 iSight 摄像头。
我是不是漏掉了什么?
*注意:我不是开发人员,只是想找点乐子 *
作为 OSX 用户和 Opencv 用户,OSX 和 opencv 的问题经常发生。
(我不是在跟踪你,而是在关注你的进展)。
您的问题有一个 trick/fix。
您只需禁用并重新启用 iSight 摄像头,之后就可以访问您想要的任何摄像头。
第 0 步:
为您的 OSX 安装创建一个备份(您应该始终有一个)
第 1 步:
停用 SIP,如果您不确定自己在做什么但别无选择,则绝对不要这样做。 重新启动您的 mac,在启动过程中按 command+R。 UI 加载后,进入顶部栏并选择 utilty->terminal 并键入:
csrutil disable; reboot
这将禁用您的 SIP 并重新启动您的 mac 进入 "normal" 模式。
第 2 步:
sudo chmod a-r /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC
sudo chmod a-r /System/Library/PrivateFrameworks/CoreMediaIOServicesPrivate.framework/Versions/A/Resources/AVC.plugin/Contents/MacOS/AVC
sudo chmod a-r /System/Library/QuickTime/QuickTimeUSBVDCDigitizer.component/Contents/MacOS/QuickTimeUSBVDCDigitizer
sudo chmod a-r /Library/CoreMediaIO/Plug-Ins/DAL/AppleCamera.plugin/Contents/MacOS/AppleCamera
sudo chmod a-r /Library/CoreMediaIO/Plug-Ins/FCP-DAL/AppleCamera.plugin/Contents/MacOS/AppleCamera
第三步:(可选) 在opencv中测试,尝试时应该会出错 cv::VideoCapture上限(0); 错误是一段文本,告诉您没有 camera/drivers,这是正常的。
第四步: 重启
第五步:
sudo chmod a+r /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC
sudo chmod a+r /System/Library/PrivateFrameworks/CoreMediaIOServicesPrivate.framework/Versions/A/Resources/AVC.plugin/Contents/MacOS/AVC
sudo chmod a+r /System/Library/QuickTime/QuickTimeUSBVDCDigitizer.component/Contents/MacOS/QuickTimeUSBVDCDigitizer
sudo chmod a+r /Library/CoreMediaIO/Plug-Ins/DAL/AppleCamera.plugin/Contents/MacOS/AppleCamera
sudo chmod a+r /Library/CoreMediaIO/Plug-Ins/FCP-DAL/AppleCamera.plugin/Contents/MacOS/AppleCamera
第六步:
在opencv中重新测试;拔下你的 USB 摄像头试试: cv::VideoCapture上限(1); 错误输出应该告诉您 cv::VideoCapture 中的范围是 0-0,而不是 xcode 默认告诉您的 0-1。
恭喜,您现在可以在 Xcode 和 Sierra 上的 opencv 中访问 USB/webcam。
第 7 步:(可选但强烈推荐)
重新激活您的 SIP(如果您不确定 mac terminal/download 中的操作 ,请执行此操作). 重新启动您的 mac 按 command+R,一旦 UI 出现在这里,选择 Utility->Terminal 并输入:
csrutil enable;
然后为您的 mac("OSX Serra - date - Opencv access Webcam" 或任何具有显式名称的名称)创建一个新的恢复点。
然后在终端输入:
reboot
第八步:享受。
一旦你有一个 opencv 设置 运行 并且如果你不使用 Objective-C/iDevice 编程你应该避免更新 Xcode 它往往会破坏opencv 安装相当困难