【问题标题】:OpenCV cvCaptureFromCAM returns zeroOpenCV cvCaptureFromCAM 返回零
【发布时间】:2011-10-08 14:37:30
【问题描述】:

我的笔记本电脑上安装了 OpenCV 2.1,并正在尝试实现人脸检测程序。我正在为我的项目使用罗技 C210。我知道相机没问题,因为软件检测并显示它,并且在示例目录中启动 facedetect.exe 显示相机正在工作。但不知何故,当在我的 VS2010 Ultimate 中使用原始 facedetect.cpp 代码时,我什至无法让 cvCaptureFromCAM 工作!这是我的代码:

#include "stdafx.h"
#include <iostream>
#include "cv.h"
#include "highgui.h"

using namespace std;
using namespace cv;

int main(int, char**) {
IplImage* frame;
// CvCapture* cap = cvCaptureFromCAM(-1);
//  cvNamedWindow( "Example2_9", CV_WINDOW_AUTOSIZE );
CvCapture* capture;
cvWaitKey(20);
capture = cvCreateCameraCapture( -1 ); //yes, if 0 doesn't work try with -1
//assert( capture != NULL );

for(;;) {
    frame = cvQueryFrame(capture);

    if(frame == NULL)
        return -1;

   imshow("cap", frame);
    if(waitKey(30) >= 0)
        break;
}

}

好的,这不是实际的面部检测代码(它太长了),但它突出了它认为的问题:

使用断点发现 cvCaptureFromCAM 后捕获的值是 0x000000。这不应该发生,是吗?谁能告诉我这是怎么回事?

【问题讨论】:

  • 之前看到过,我觉得已经够不一样了。我在 OpenCV 2.1 中遇到问题,而不是 2.3。在 Windows 平台上。
  • 您是否检查了上述所有 3 个重复项,即不只是第一个?
  • 我做到了。其中两个在 Ubuntu 上运行。我的是 Windows 7 32 位。另一个没有指定她的操作系统,但无论哪种方式,该帖子对我都没有帮助。
  • 表示无法打开相机。要么你没有摄像头(!),要么驱动程序不工作,或者其他一些应用程序(通常是 skpe)抓住了摄像头

标签: c++ windows image-processing opencv camera


【解决方案1】:

尝试复制调用。请参考我看起来相似的问题。 How to avoid "Video Source -> Capture source" selection in OpenCV 2.3.0 - Visual C++ 2008

【讨论】:

    【解决方案2】:

    尝试升级到 OpenCV 2.4.2。不是完全相同的问题(对我来说 queryFrame() 使用 v2.2.0 总是返回 NULL),但现在它就像一个魅力。 也许只是兼容性问题。

    【讨论】:

      猜你喜欢
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 2015-10-25
      • 2019-08-11
      相关资源
      最近更新 更多