使用Qt + Opencv时未定义的Opencv引用

时间:2012-05-16 06:04:59

标签: c++ opencv qt4

你好我基本上试图使一个应用程序显示和Opencv Iplimage转换为标签中的QImage,我做了一个简单的例子,它工作得很好,但现在当我尝试将该图像转换集成到另一个项目时,我得到undefined Opencv函数引用如下:未定义引用来自Highgui的`cvQueryFrame'all

我实际上使用了我第一次尝试图像转换时使用的相同库路径,只是这次它不起作用。我对Qt很新,我不知道问题出在哪里:

 #include <qt4/QtGui/QApplication>
 #include "myqtapp.h"
 #include <iostream>
 #include <stdlib.h>
 #include <stdio.h>
 #include <opencv/highgui.h>
 #include <opencv/cv.h>

 using namespace std;
 int main(int argc, char *argv[])
 {

QApplication app(argc, argv);
myQtApp *dialog = new myQtApp;
//********************************************************************************************************
QImage myImage; 
QLabel label_5;
IplImage* frame;   
//label_5 = new QLabel(myQtAppDLG); //Not using this Yet
CvCapture* capture = cvCreateFileCapture( "garden.bmp" );  
frame = cvQueryFrame( capture );
cvCvtColor(frame,frame,CV_BGR2RGB); 
myImage = QImage((unsigned char *)frame->imageDataOrigin,frame->width,frame->height,QImage::Format_RGB888);  
//label_5.setPixmap(QPixmap::fromImage(myImage)); //Not using this Yet
//********************************************************************************************************
dialog->show();  
return app.exec();

}

 main.cpp:(.text+0x44): undefined reference to `cvCreateFileCapture'
 main.cpp:(.text+0x4c): undefined reference to `cvQueryFrame'
 main.cpp:(.text+0x62): undefined reference to `cvCvtColor'

正如你所看到的,我尝试做的第一件事就是使用一些像CvQueryFrame这样的Opencv函数,有趣的是我使用的是第一次使用的完全相同的包含路径,也链接了完全相同的动态库。我尝试过不同的路径和编译器,但似乎没有任何工作,我不知道错误可能在哪里。我使用Linux Ubuntu和Netbeans C ++,任何提示?

1 个答案:

答案 0 :(得分:0)

您错过了将highgui库包含在库路径中。 cvCreateFileCapture和cvCvtColor是该库的一部分。