Opencv& OSX:USB摄像头访问

时间:2017-04-29 14:14:10

标签: c++ opencv3.0 macos-sierra

我检查了所有相关问题,答案都是过时的(C API)或不相关/没有真正答案。

Opencv 3.0版(通过自制程序)。

操作系统:OSX Sierra

Opencv运行顺利,VideoCapture :: VideoCapture(int device)除外。

无论我尝试的参数如何,Videocapture总是采用iSight摄像头。

我错过了什么吗?

*注意:我不是开发人员,只是想玩得开心*

1 个答案:

答案 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安装很难