1

您好,我基本上是在尝试制作一个应用程序,在标签中显示并将 Opencv Iplimage 转换为 QImage,我做了一个简单的示例,它工作得很好,但是现在当我尝试将该图像转换集成到另一个项目时,我得到未定义的 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'

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

4

1 回答 1

0

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

于 2012-05-16T07:41:38.613 回答