0

我正在尝试使用 openCV 运行一个简单的代码,但我不断收到此错误。

错误:未定义对“cvCreateFileCapture”的引用

错误:未定义对“cvQueryFrame”的引用

错误:未定义对“cvReleaseCapture”的引用

据我所知,这些函数是在“highgui”组件中定义的,我将它的头文件包含在我的代码中,还包括它的路径到我的库路径。

INCLUDEPATH += /usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui

我成功使用了'highgui'组件的其他功能,没有任何错误。例如:'cvLoadImage' 我的 IDE 的智能感知也不断向我建议这些功能,我认为这意味着我已经正确地包含了库路径。

为什么我会收到这些错误?

有关更多信息,我在 linux mint 17.2 上使用 openCV 3.0.0、Qt creator 3.1.1

我试图运行的完整简单代码是:

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

using namespace std;

int main()
{
    CvCapture* capture = cvCreateFileCapture("/home/ali/drop.avi");
    cvNamedWindow("t2",CV_WINDOW_AUTOSIZE);
    IplImage* frame;
    while(1) 
    {
        frame = cvQueryFrame(capture);
        if(!frame) break;
        cvShowImage("t2",frame);
        char c = cvWaitKey(33);
        if(c==27) break;
    }
    cvReleaseCapture(&capture);
    cvDestroyWindow("t2");

    return 0;
}

先感谢您。

4

1 回答 1

0

您对 openCV 的研究来源已过时。那是旧的C api。在这里研究一些文档

编辑:另外,按照@berak 的建议使用 cv::Mat 和 cv::VideoCapture

替换<cv.h><opencv2/core.hpp>

在我的 openCV 安装中,我包含了这样的 highgui<opencv2/highgui.hpp>

于 2016-01-13T07:08:31.370 回答