1

介绍:

嗨,每当我尝试从文件或相机中检索一些视频输入时,我都会遇到问题。

我正在学习书中给出的教程:“使用 openCV 库学习 OpenCV 计算机视觉”。我可以获得使用相机输入或视频文件输入工作的示例。这些例子是 2-2 和 2-9。


代码:

  • 我用于示例 2-2(视频输入)的代码是:

    #include "stdafx.h"
    #include "highgui.h"
    #include <cv.h>
    
    
    int main( int argc, char** argv ) {
    cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
    CvCapture* capture = cvCreateFileCapture( "C:\\Users\\$catia video tutorial 3.avi" );
    IplImage* frame;
    
    while(1) {
        frame = cvQueryFrame( capture );
        if( !frame ) break;
        cvShowImage( "Example2", frame );
        char c = cvWaitKey(33);
        if( c == 27 ) break;
    }
    cvReleaseCapture( &capture );
    cvDestroyWindow( "Example2" );
    }
    
  • 我用于示例 2-9(相​​机输入)的代码是:

       #include "stdafx.h"
       #include <highgui.h>
       #include <cv.h>
    
    
        int _tmain(int argc, _TCHAR* argv[])
    {
        CvCapture* capture = cvCreateCameraCapture(-1);
        IplImage* frame;
    
    while(1) {
        frame = cvQueryFrame( capture );
        //if( !frame ) break;
        cvShowImage( "Example2", frame );
        char c = cvWaitKey(33);
    if( c == 27 ) break;
    }
    cvReleaseCapture( &capture );
    cvDestroyWindow( "Example2" );
    return 0;
    }
    

条件:

我同时为这两个示例寻求帮助的原因是因为我认为两者的问题是相同的!这两个都是简短的例子。

  • 我在装有 Visual Studio 2010 的 Windows 7 x64 机器上使用 OpenCV 2.2

  • 我已在我的项目属性中添加了所有 Opencv 库并正确包含文件。

  • 我的相机确实可以与其他程序一起正常工作。

  • 图像输入工作正常。这是视频没有。


输出:

  • 示例 2-2 在调用“cvCreateFileCapture”函数后立即给我一个“访问冲突异常”。
  • 示例 2-9 显示了一个弹出窗口,要求我选择一个视频设备。我显然选择了唯一的选择,那就是我的笔记本电脑附带的 bisonCam。然后它打开一个空窗口,什么也不做。
  • 在示例 2-9 中,摄像头 LED 亮起。

所以...:

如果有人知道我错过了什么,我会非常感谢你的建议!!:D

4

1 回答 1

0

尝试在不带美元符号 ($) 的情况下命名您的文件。这可能导致示例 2-2 出现问题(代码本身看起来不错)。

于 2012-09-05T05:53:18.837 回答