我试图使用openCV运行一个简单的代码,但我一直收到这个错误。
错误:未定义对`cvCreateFileCapture'
的引用错误:未定义对`cvQueryFrame'
的引用错误:未定义对`cvReleaseCapture'
的引用
据我所知,这些功能是在' highgui'中定义的。我将代码包含在我的代码中的组件,还包含了我的库路径的路径。
INCLUDEPATH += /usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui
我成功使用了' highgui'的其他功能。组件没有任何错误。例如:' cvLoadImage' 我的IDE的intellisense一直在向我推荐这些函数,我认为这意味着我已经正确地包含了库路径。
为什么我会收到这些错误?
了解更多信息我在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;
}
提前谢谢。
答案 0 :(得分:0)
您对openCV的研究来源已过时。那是旧的C api。研究一些文档here
编辑:另外,按照@berak的建议使用cv :: Mat和cv :: VideoCapture
将<cv.h>
替换为<opencv2/core.hpp>
在我的openCV安装中,我包含了类似这样的高级<opencv2/highgui.hpp>