Mac macOS 10.14 Mojave Xcode OpenCV 无法打开摄像头,调用摄像头权限错误
Mac macOS 10.14 Mojave Xcode opencv 調(diào)用攝像頭權(quán)限錯(cuò)誤
This app has crashed because it attempted to access privacy-sensitive data without a usage description.
OpenCV: camera failed to properly initialize!
更新了macOS 10.14 Mojave之后,使用opencv調(diào)用攝像頭會(huì)產(chǎn)生權(quán)限錯(cuò)誤,報(bào)錯(cuò)This app has crashed because it attempted to access privacy-sensitive data without a usage description.
OpenCV: camera failed to properly initialize!
原因是macOS 10.14加入了對(duì)所有程序的隱私權(quán)限管理,如果要涉及隱私權(quán)限,要在可執(zhí)行程序旁邊加入Info.plist且在里面注冊(cè)攝像頭權(quán)限。
操作示例
這里從Mac自帶程序Photo Booth里復(fù)制Info.plist,在應(yīng)用程序文件夾里找到Photo Booth.app,右鍵選擇顯示包內(nèi)容,文件夾里有一個(gè)Info.plist文件
將文件復(fù)制
然后打開(kāi)Xcode找到自己的工程
如上圖所示,找到Products中的Target文件并用finder打開(kāi)
將Info.plist文件粘貼在該文件夾下
修改Info.plist文件中的內(nèi)容,原文件內(nèi)容如下
刪去其中的不必要的鍵值對(duì),最后加入鍵Privacy - Camera Usage Description,值為YES,修改好后的Info.plist如下,OpenCV為我的項(xiàng)目名。
其中這幾項(xiàng)為自己的項(xiàng)目名,根據(jù)自己工程名進(jìn)行修改
修改之后保存就可以了
// // 2-8攝像頭.cpp // OpenCV // // Created by 盧欣 on 2019/7/14. // Copyright ? 2019 盧欣. All rights reserved. //#include <stdio.h> #include <opencv2/opencv.hpp> #include <iostream>using namespace cv;int main(int argc, char** argv) {Mat frame;namedWindow("frame",cv::WINDOW_AUTOSIZE);VideoCapture cap;cap.open(0);if(!cap.isOpened()){std::cerr << "Couldn't open capture." << std::endl;return -1;}while(true){cap >> frame;imshow("frame", frame);char c = waitKey(20); //延時(shí)30if(c == 'q'){break;}}return 0; }用該代碼測(cè)試后即可,代碼會(huì)打開(kāi)攝像頭,按q退出
總結(jié)
以上是生活随笔為你收集整理的Mac macOS 10.14 Mojave Xcode OpenCV 无法打开摄像头,调用摄像头权限错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1.1 夏驰和徐策带你了解计算机的发展方
- 下一篇: 褚时健:年轻人不要太急了,我快九十了还在