Seite 1 von 1

[gelöst]Probleme beim Einbinden von opencv

Verfasst: 20. April 2012 11:19
von Scary Hallo
Hallo,
ich habe ein QT-Projekt und will nun die Bildverarbeitungs-Sofware einbinden. Ich stoße immer wieder auf Probleme. Evtl. fange ich es total falsch an. Also im Moment sieht meine PRO so aus

Code: Alles auswählen

#-------------------------------------------------
#
# Project created by QtCreator 2012-01-24T15:37:47
#
#-------------------------------------------------

TARGET = EluEye
TEMPLATE = lib

DEFINES += ELUEYE_LIBRARY

SOURCES += elueye.cpp \
    mainwidget.cpp \

HEADERS += elueye.h\
           EluEye_global.h \
           mainwidget.h \

FORMS += mainwidget.ui

RESOURCES += \
    resource.qrc

INCLUDEPATH += ./opencv/build/include

LIBS += -L”c:\Users\hku\Projects\CPP\EluEye\EluEye\opencv\build\x86\mingw\bin”
Mein Beispiel-Code sieht so aus;

Code: Alles auswählen

MainWidget::MainWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MainWidget),
    value(0.0)
{
    ui->setupUi(this);

    // connections
    connect(ui->buttonClose, SIGNAL(clicked()), this, SLOT(close()));
    IplImage *image;
    CvCapture* capture = cvCaptureFromCAM(0);

    image = cvQueryFrame(capture);
    //cvCvtColor(image, image,CV_BGR2RGB);

    QImage qimg((const uchar *)image->imageData, image->width, image->height, QImage::Format_RGB888);
    ui->labelProcessed->setPixmap(QPixmap::fromImage(qimg));

    cvReleaseCapture(&capture);
}
Da bekomme ich folgende Fehlermeldungen:

Code: Alles auswählen

debug/mainwidget.o: In function `MainWidget':
C:\Users\hku\Projects\CPP\EluEye\EluEye/mainwidget.cpp:17: undefined reference to `cvCreateCameraCapture'
C:\Users\hku\Projects\CPP\EluEye\EluEye/mainwidget.cpp:19: undefined reference to `cvQueryFrame'
C:\Users\hku\Projects\CPP\EluEye\EluEye/mainwidget.cpp:25: undefined reference to `cvReleaseCapture'
C:\Users\hku\Projects\CPP\EluEye\EluEye/mainwidget.cpp:17: undefined reference to `cvCreateCameraCapture'
C:\Users\hku\Projects\CPP\EluEye\EluEye/mainwidget.cpp:19: undefined reference to `cvQueryFrame'
C:\Users\hku\Projects\CPP\EluEye\EluEye/mainwidget.cpp:25: undefined reference to `cvReleaseCapture'
collect2: ld returned 1 exit status
Kann mir jemand helfen?

(Edit) Ach ja, ich arbeite unter Windows, MinGW, und QTCreator

Re: Probleme bein Einbinden von opencv

Verfasst: 20. April 2012 16:31
von Christian81
LIBS benötigt eine Library und keinen Pfad - siehe auch Doku

Re: Probleme bein Einbinden von opencv

Verfasst: 23. April 2012 11:00
von Scary Hallo
Da hast Du natürlich recht. Zu meiner Entschuldigung: Der Post war das Ergebnis von einem halben Tag try and error.
Aber zurück zum Problem.
Es klappt jetzt. Für alle, die ein ähnliches Problem haben. Ich habe folgendes gemacht:
  • Den Sourcecode der OpenCv-Version 2.3 runter geladen
    Cmake runtergeladen
    OpenCv selbst kompiliert () -> http://opencv.willowgarage.com/wiki/MinGW
    Die Include-, die Lib- und die Dll-Dateien in mein Projekt Kopiert
    Meine *.pro angepasst

    Code: Alles auswählen

    TARGET = EluEye
    TEMPLATE = lib
    
    DEFINES += ELUEYE_LIBRARY
    
    SOURCES += elueye.cpp \
        mainwidget.cpp \
    
    
    HEADERS += elueye.h\
               EluEye_global.h \
               mainwidget.h \
    
    
    FORMS += mainwidget.ui
    
    RESOURCES += \
        resource.qrc
    
    INCLUDEPATH += ./opencv/include
    
    
    LIBS += "c:\Users\hku\Projects\CPP\EluEye\EluEye\opencv\lib\libopencv_core230.dll.a" \
            "c:\Users\hku\Projects\CPP\EluEye\EluEye\opencv\lib\libopencv_highgui230.dll.a"