使用Windows试图使用cvCreateCameraCapture(0)打开我的网络摄像头;或cvCaptureFromCAM(0),但是当我按ok时,它只是打开摄像机中的“视频源”窗口,没有任何反应,它返回null,有时会出现黑屏
虽然相机在使用C ++ API VideoCapture时可以工作,但是我需要使用C API
安装了quicktime并尝试了-1,1,2,...... 1000而不是0的任何帮助:D?

#include "opencv2\highgui.hpp"
#include <iostream>
using namespace std;
using namespace cv;
//cvCapture
int main()
{
    IplImage * s;
    namedWindow("l");
    CvCapture* v = cvCreateCameraCapture(0);
    while (1)
    {
    if( s = cvQueryFrame(v))
    {
        cvShowImage("l", s);
        cout << "in";
    }
        if (char c = waitKey(10) == 27) break;
    }
    cvReleaseCapture(&v);
    cvDestroyWindow("l");
    return 2;
}


Here's what i get
当我按确定时,什么也没发生,它保持灰色窗口
如果我替换为它可以工作,但是我需要使用C API(cvCreateCameraCapture)

int main()
{
    VideoCapture v(0);
    namedWindow("l");
    if (!v.isOpened())return 2;
    while (1)
    {
        Mat f;
        v.read(f);
        imshow("l", f);
        if (char c = waitKey(10) == 27) break;
    }
    cvDestroyWindow("l");
}

最佳答案

这是一个known issue

我个人通过再次合并deleted part并构建dll解决了该问题。

在这里cap.cppcap_dshow.cpp

如果您使用这些文件重建OpenCV 3.0 dll,则将解决您的问题。否则,您可以打开描述问题的问题here并等待开发人员的解决方案或使用OpenCV 2.4.12

关于c++ - 无法通过cvCreateCameraCapture访问OpenCV 3.0摄像机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33710515/

10-10 09:09