我检查了所有相关问题,答案都是过时的(C API)或不相关/没有真正答案。
Opencv 3.0版(通过自制程序)。
操作系统:OSX Sierra
Opencv运行顺利,VideoCapture :: VideoCapture(int device)除外。
无论我尝试的参数如何,Videocapture总是采用iSight摄像头。
我错过了什么吗?
*注意:我不是开发人员,只是想玩得开心*
答案 0 :(得分:1)
作为OSX用户和Opencv用户,OSX& amp; opencv不仅仅是reccurent。
(我不跟踪你,但跟着你的进展)。
您的问题有一个技巧/修复。
您只需要禁用并重新启用iSight摄像头即可访问您想要的摄像头。
第0步:
创建OSX安装的备份(您应该总是有一个)
第1步:
停用SIP,如果您不确定自己在做什么但没有其他选择,这是您永远不应该做的事情。 在引导按下命令+ R期间重新启动mac。 加载完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
第3步:(可选) 在opencv中测试,尝试时应该会出错 cv :: VideoCapture cap(0); 错误是一段文字告诉你没有相机/驱动程序,这是正常的。
步骤4: 重新启动
步骤5:
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
步骤6:
在opencv中重新测试;拔掉你的usb相机试试: cv :: VideoCapture cap(1); 错误输出应该告诉你cv :: VideoCapture中的范围是0-0而不是默认情况下xcode告诉你的0-1。
祝贺您现在可以在Xcode和Sierra上的opencv中访问USB /网络摄像头。
步骤7 :(可选但非推荐)
重新激活您的SIP(如果您不确定您在终端上的操作/在Mac上下载 DO IT )。 重新启动mac press命令+ R,一旦用户界面在这里,选择Utility-> Terminal并输入:
csrutil enable;
然后创建mac的新恢复点(" OSX Serra - 日期 - Opencv访问网络摄像头"或任何具有EXPLICIT名称的人)。
然后在终端类型:
reboot
Step8:享受。
一旦你有一个opencv设置运行,如果你不使用Objective-C / iDevice编程,你应该避免更新Xcode,如果它倾向于破坏opencv安装很难