OpenCV没有显示来自Macbook网络摄像头的视频

OpenCV shows no video from Macbook webcam

本文关键字:Macbook 网络 摄像头 的视频 显示 OpenCV      更新时间:2023-10-16

我正在使用这里的代码:

#include "opencv2/opencv.hpp"
using namespace cv;
int main(int, char**)
{
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened())  // check if we succeeded
        return -1;
    namedWindow("edges",1);
    for(;;)
    {
        Mat frame;
        cap >> frame; // get a new frame from camera
        imshow("edges", frame);
        if(waitKey(200) >= 0) break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
    return 0;
}

几乎所有事情都按预期工作。

出现一个窗口,我的网络摄像头指示灯变为绿色,然后没有视频。

我已经简化了我的代码,因为我实际上不想要示例中的转换。只想看视频提要。

我用谷歌搜索了一堆,读了几个问题,似乎没有任何效果。我尝试调整等待时间,跳过第一帧,使用cap.read,包括highgui,使highgui感到特别被排除在外和亵渎。到目前为止,没有任何效果。

我使用了从源代码构建的 opencv,并且正在运行opencv2.4.13.6 .使用CMake和制作。

我的CMake是:

set( OpenCV_DIR /Users/jason.nichols/opencv-2.4.13.6/build )
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage motion.cpp )
target_link_libraries( DisplayImage  ${OpenCV_LIBS} )

有什么想法吗?

出于某种原因,关闭我的终端并重新打开它使这项工作。

我猜这是我在 opencv 设置期间在.bash_profile中添加的环境变量,但不是 100% 确定。

这个问题的真正问题是没有运行时错误,没有cmake错误,也没有编译器错误。

我知道这不是一个令人满意的答案,但是如果您达到此状态,请尝试将其关闭并重新打开。

同样,具体来说,代码编译、运行、打开网络摄像头灯,但不显示任何视频或引发任何异常。在这种状态下,重新启动终端解决了我的问题。如果有人知道原因,请接受更好的答案。这几乎肯定不适用于任何其他问题。