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

Undefined Opencv References when using Qt + Opencv

本文关键字:Opencv 引用 未定义 使用 Qt      更新时间:2023-10-16

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

我实际上使用的库路径与我第一次尝试图像转换时使用的库路径相同,只是这次它不起作用。我对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'

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

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