打开内置 Macbook pro 摄像头时出错
Posted
技术标签:
【中文标题】打开内置 Macbook pro 摄像头时出错【英文标题】:Error when openning built-in Macbook pro camera 【发布时间】:2019-04-15 23:03:37 【问题描述】:我正在尝试使用带有 c++ 的 opencv 4.1.0 从 Macbook pro 的内置摄像头读取一些帧。以下是我的代码:
#include "opencv2/opencv.hpp"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgcodecs.hpp>
#include <iostream>
#include <unistd.h>
using namespace cv;
using namespace std;
int main(int, char**)
VideoCapture cap(0);
if(!cap.isOpened())
cerr<<"Error! unable to open camera!";
return -1;
cout << "Start grabbing" << endl
<< "Press any key to terminate" << endl;
Mat frame;
namedWindow("Live");
for (;;)
// wait for a new frame from camera and store it into 'frame'
cap.read(frame);
// check if we succeeded
if (frame.empty())
cerr << "ERROR! blank frame grabbed\n";
break;
// show live and wait for a key with timeout long enough to show images
imshow("Live", frame);
if (waitKey(5) >= 0)
break;
return 0;
调用时
VideoCapture cap(0);
我得到的错误是:
testApp[11889:464240] +[AVCaptureDevice authorizationStatusForMediaType:]: unrecognized selector sent to class 0x7fff9f79cd50
[ERROR:0] VIDEOIO(AVFOUNDATION): raised unknown C++ exception!
我尝试将 0 替换为其他索引,但它们都不起作用。有谁知道怎么回事?
【问题讨论】:
【参考方案1】:您在哪个版本的 macOS 上运行?我有完全相同的问题,但在 Java 中。我今天通过将我的操作系统从 High Sierra 升级到 Mojave 版本 10.14 并使用 xcode-select --install
更新终端中的 Xcode 命令行工具解决了这个问题。
我认为我们遇到这个问题的原因是 Xcode 命令行工具——它提供了 api (AVFoundation) 来访问 macOS 和 ios 上的摄像头——太旧了,因此与新发布的 OpenCV4.1.0 不兼容。所以我的建议是尝试更新你的 Xcode 命令行工具。就我而言,我需要升级我的操作系统才能获得更新的版本。
【讨论】:
【参考方案2】:我有同样的问题,但在 python 中。我想访问网络摄像头并捕获图像,但继续收到此错误。解决我的问题是对 macbook 进行简单的 SMC 重置。
【讨论】:
以上是关于打开内置 Macbook pro 摄像头时出错的主要内容,如果未能解决你的问题,请参考以下文章
macbook pro win7系统下,摄像头驱动坏了,怎么弄啊?急啊!!
MacBook Pro15款 摄像头不能用了,灯也不亮,重新做了系统还是不行。p+r也用过了。