无法安装OpenCV?

时间:2013-07-04 06:42:29

标签: c++ opencv codeblocks

我正在尝试使用Opencv从网络摄像头捕获视频。

我有以下代码

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"

#include <cstdio>
#include <iostream>
#include "cv.h"
#include "highgui.h"
#include <stdio.h>

using namespace cv;
using namespace std;

int main()
{
    VideoCapture cap;
}

导致程序以错误

终止
  

处理终止,状态为-1073741510(0分34秒)

我想知道我是否在codeblocks上没有正确安装opencv

请注意,当我使用此程序时,一切正常

CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY );
if ( !capture )
{
    fprintf( stderr, "ERROR: capture is NULL \n" );
    getchar();
    return -1;
}

IplImage* frame = cvQueryFrame( capture );

cvNamedWindow( "mywindow", CV_WINDOW_AUTOSIZE );

while ( 1 )
{
    frame = cvQueryFrame( capture );
    if ( !frame )
    {
        fprintf( stderr, "ERROR: frame is null...\n" );
        getchar();
        break;
    }

    cvShowImage( "mywindow", frame );

    if ( (cvWaitKey(10) & 255) == 27 )
        break;
}

cvReleaseCapture( &capture );
cvDestroyWindow( "mywindow" );

return 0;

linker Settings compiler settings linker

修改

将标题更改为hpp文件也会产生同样的问题

#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <cstdio>
#include <iostream>
#include <stdio.h>

using namespace cv;
using namespace std;

int main()
{
    VideoCapture cap;
    cap.open(1);
    return 0;
}

2 个答案:

答案 0 :(得分:3)

编译和运行的程序使用OpenCV 1.x,而不包含OpenCV 1.x的程序中包含的标题。如果您希望它能够运行,您需要安装此版本的OpenCV。

答案 1 :(得分:1)

您需要包含:

#include "opencv2/opencv.hpp"  
#include "opencv2/highgui/highgui.hpp"

而不是

#include "cv.h"
#include "highgui.h"

C和C ++标头不应包含在同一个OpenCV项目中。最后,它应该是这样的:

#include "opencv2/opencv.hpp"  
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"

#include <cstdio>
#include <iostream>

#include <stdio.h>

using namespace cv;
using namespace std;

int main()
{
    VideoCapture cap;
}