Forum: PC-Programmierung OpenCV + QT4


von Thomas M. (faustus)


Lesenswert?

Hallo!

Will OpenCV mit QT4 verwenden, aber das Programm bricht bei der 
Ausführung mit der folgenden Fehlermeldung ab:

During startup program exited with code 0xc0000135


Das Programm ist mehr als einfach... Wenn die Zeile cv::Mat... 
auskommentiert wird, dann funktioniert alles --> liegt also definitiv an 
OpenCV
1
#include <QtGui/QApplication>
2
#include "mainwindow.h"
3
4
#include "opencv2/core/core.hpp"
5
#include "opencv2/highgui/highgui.hpp"
6
7
int main(int argc, char *argv[])
8
{
9
    QApplication a(argc, argv);
10
    MainWindow w;
11
    w.show();
12
13
    cv::Mat image=cv::imread("img.jpg");
14
15
    return a.exec();
16
}

Im Projektfile habe ich die Libs und das Include eingebunden.
1
#-------------------------------------------------
2
#
3
# Project created by QtCreator 2011-08-31T08:44:55
4
#
5
#-------------------------------------------------
6
7
QT       += core gui
8
9
TARGET = ImageProcessing
10
TEMPLATE = app
11
12
13
SOURCES += main.cpp\
14
        mainwindow.cpp
15
16
HEADERS  += mainwindow.h
17
18
FORMS    += mainwindow.ui
19
20
21
INCLUDEPATH += D:\opencv_2.3.0\build\include
22
LIBS += D:\opencv_2.3.0\build\x86\mingw\lib\*.a

Ich verwende OpenCV 2.3.1, wobei im Verzeichnis 
D:\opencv_2.3.0\build\x86\mingw\lib die bereits vorkompilierten 
Bibliotheken für mingw liegen. Habe auch versucht die Libs mittels Cmake 
neu zu generieren, aber das Problem konnte ich dadurch nicht beseitigen.

Hat irgendwäre eine Idee dazu?

lg
Faustus

von sid (Gast)


Lesenswert?

Du kannst ja mal probieren ob das alte Interface zu OpenCV richtig 
funktioniert. Das wäre dann in etwa:
1
#include <cv.h>
2
#include <cvaux.h>
3
#include <cxcore.h>
4
#include <highgui.h>
5
#include <highgui.hpp>
6
7
...
8
9
IplImage* img; 
10
img=cvLoadImage("img.jpg");
11
cvShowImage("Image",img);
12
cvReleaseImage(&img);

Was du noch probieren kannst ist ein anderes Bildformat (zB. PNG). Ich 
hatte mal das Problem, dass sich QT und OpenCV in die Quere kamen weil 
beide libjpeg nutzen.

von Thomas M. (faustus)


Lesenswert?

Nein leider, hat nicht funktioniert.

Das das so kompliziert sein kann...

von xchrisx s. (xchrisx)


Lesenswert?

Ev hilft dir das weiter. Ich habe es einfach aus einem kleinen 
Testprogramm exportiert:
1
# ----------------------------------------------------
2
# This file is generated by the Qt Visual Studio Add-in.
3
# ------------------------------------------------------
4
5
# This is a reminder that you are using a generated .pro file.
6
# Remove it when you are finished editing this file.
7
message("You are running qmake on a generated .pro file. This may not work!")
8
9
10
TEMPLATE = app
11
TARGET = OpenCV23HarrisCorner
12
DESTDIR = ../Release
13
QT += core gui multimedia svg qtmain opengl
14
CONFIG += release
15
DEFINES += QT_LARGEFILE_SUPPORT QT_MULTIMEDIA_LIB QT_OPENGL_LIB QT_SVG_LIB
16
INCLUDEPATH += ./GeneratedFiles \
17
    ./GeneratedFiles/Release \
18
    . \
19
    ../../../../../../../../OpenCV2.3/build/include
20
LIBS += -L"../../../../../../../../OpenCV2.3/build/x86/vc9/lib" \
21
    -L"../../../../../../../../OpenCV2.3/build/x86/vc9/bin" \
22
    -lopengl32 \
23
    -lglu32 \
24
    -lopencv_core231 \
25
    -lopencv_imgproc231 \
26
    -lopencv_highgui231
27
DEPENDPATH += .
28
MOC_DIR += ./GeneratedFiles/release
29
OBJECTS_DIR += release
30
UI_DIR += ./GeneratedFiles
31
RCC_DIR += ./GeneratedFiles
32
include(OpenCV23HarrisCorner.pri)
33
win32:RC_FILE = OpenCV23HarrisCorner.rc

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.