我想運行一個簡單的代碼使用openCV,但我不斷收到此錯誤。爲什麼使用OpenCV時會出現此錯誤?錯誤:未定義的引用`cvCreateFileCapture'
error: undefined reference to `cvCreateFileCapture'
error: undefined reference to `cvQueryFrame'
error: undefined reference to `cvReleaseCapture'
據我知道這些功能是在「highgui」分量我包括它的報頭到我的代碼和也包括它的路徑向我的庫的路徑定義。
INCLUDEPATH += /usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui
我成功地使用的「highgui」組件等功能而沒有任何錯誤。例如:'cvLoadImage' 另外我的IDE的intellisense不斷向我推薦這些功能,我認爲這意味着我已經正確包含了庫路徑。
爲什麼我會收到這些錯誤?
對我使用的OpenCV 3.0.0的詳細信息,對Linux Mint的Qt Creator的3.1.1 17.2
完整簡單的代碼,我試圖運行是:
#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;
}
謝謝提前。
上面的代碼是來自opencv的棄用c-api,你**不能**使用它。改爲使用cv :: Mat,cv :: VideoCapture,C++ api。 – berak