【问题标题】:OpenCV 3.0 camera not accessible by cvCreateCameraCapturecvCreateCameraCapture 无法访问 OpenCV 3.0 相机
【发布时间】: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 和相同的结果。但我想我知道原因。请稍等。

标签: c++ c opencv windows-8 opencv3.0


【解决方案1】:

这是一个known issue

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

这里cap.cppcap_dshow.cpp

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 1970-01-01
      • 2017-04-23
      • 2019-01-07
      相关资源
      最近更新 更多