cvCreateCameraCapture 无法访问 OpenCV 3.0 相机

Posted

技术标签:

【中文标题】cvCreateCameraCapture 无法访问 OpenCV 3.0 相机【英文标题】:OpenCV 3.0 camera not accessible by cvCreateCameraCapture 【发布时间】:2015-11-14 16:19:21 【问题描述】:

使用 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");

【问题讨论】:

你能发一个minimal reproducible example吗? 这样好还是更详细? 你的 OpenCV 版本是多少? opencv 3.0 它被标记 对不起。我也有 3.0 和相同的结果。但我想我知道原因。请稍等。 【参考方案1】:

这是一个known issue

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

这里cap.cpp和cap_dshow.cpp

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

【讨论】:

【参考方案2】:

在 Opencv 中使用 IplImage 和 Cvfunctions 早已不复存在。 您可以尝试使用旧版本的 opencv 来使用这些。

【讨论】:

以上是关于cvCreateCameraCapture 无法访问 OpenCV 3.0 相机的主要内容,如果未能解决你的问题,请参考以下文章

cvCreateCameraCapture 不工作

为什么OpenCV的`cvCreateCameraCapture`和`cvCreateFileCapture`不起作用?

RUN命令无法访问卷

Xcode Playgrounds:源文件无法互相访​​问

const commandFolders = readdirSync('./commands'); ReferenceError:在 Object.<anonymous> 初始化之前无法访

openCV上的USB相机选择