MacOS蒙特利上的OpenCV C++视频捕获无法工作



嗨,我正在使用带蒙特利操作系统的M1 Macbook Pro 2021。我一直试图在Visual Studio Code上使用mac的内部网络摄像头和OpenCV C++VideoCapture类,但我一直收到这些奇怪的错误。我已经在Mac的首选项上允许终端和iTerm访问相机,但它仍然会给我这个错误。这是我的代码,

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
void camera_in()
{
VideoCapture cap;
cap.open(2, CAP_AVFOUNDATION);
if (!cap.isOpened())
{
cerr << "Camera open failed!" << endl;
return;
}
cout << "Frame width: " << cvRound(cap.get(CAP_PROP_FRAME_WIDTH)) << endl;
cout << "Frame height: " << cvRound(cap.get(CAP_PROP_FRAME_HEIGHT)) << endl;
Mat frame, inversed;
while (true)
{
cap >> frame;
if (frame.empty())
break;

inversed = ~frame;
imshow("frame", frame);
imshow("inversed", inversed);

if (waitKey(10) == 27)
break;
}
destroyAllWindows();
}
int main()
{
camera_in();
}

这就是我在执行过程中遇到的错误。

2022-08-05 18:15:01.284398+0900 video[7664:45504] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x10b54c320> F8BB1C28-BAE8-11D6-9C31-00039315CD46
2022-08-05 18:15:01.291647+0900 video[7664:45504]  HALC_ProxyObjectMap::_CopyObjectByObjectID: failed to create the local object
2022-08-05 18:15:01.291664+0900 video[7664:45504]  HALC_ShellDevice::RebuildControlList: couldn't find the control object
2022-08-05 18:15:01.316885+0900 video[7664:45504] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x10c50bb40> 30010C1C-93BF-11D8-8B5B-000A95AF9C6A

我在macbook pro m1 14上运行了这段代码"它起作用了,我不得不改变:

cap.open(2, CAP_AVFOUNDATION);

至:

cap.open(0, CAP_AVFOUNDATION);

让它工作(0是内置网络摄像头的索引(。

最新更新