2013-08-09 2 views
3

Windows 8 64 비트에서 Qt Creator 2.7.0 (Qt 5.0.2)으로 OpenCV를 구성하려고합니다.Qt가있는 OpenCV : 프로그램이 예기치 않게 종료되었습니다.

QT  += core gui 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = untitled1 
TEMPLATE = app 


SOURCES += main.cpp\ 
     mainwindow.cpp 

HEADERS += mainwindow.h 

FORMS += mainwindow.ui 

unix:!mac { 
    message("* Using settings for Unix/Linux.") 
    INCLUDEPATH += /usr/local/include/opencv 

    LIBS += -L/usr/local/lib/ \ 
     -lopencv_core \ 
     -lopencv_highgui \ 
     -lopencv_imgproc 
} 

## OpenCV settings for Mac OS X 
macx { 
    message("* Using settings for Mac OS X.") 
    INCLUDEPATH += /usr/local/include/opencv 

    LIBS += -L/usr/local/lib/ \ 
     -lopencv_core \ 
     -lopencv_highgui \ 
     -lopencv_imgproc 
} 

## OpenCV settings for Windows and OpenCV 
win32 { 
    message("* Using settings for Windows.") 
    INCLUDEPATH += "C:\\OpenCV\\opencv\\build\\include" \ 
        "C:\\OpenCV\\opencv\\build\\include\\opencv" \ 
        "C:\\OpenCV\\opencv\\build\\include\\opencv2" 

    LIBS += -L"C:\\OpenCV\\opencv\\build\\x64\\mingw\\lib" \ 
     -lopencv_core244 \ 
     -lopencv_highgui244 \ 
     -lopencv_imgproc244 
} 

환경 변수는이 내 MAIN.CPP입니다

The program has unexpectedly finished.

#include "mainwindow.h" 
#include <QApplication> 
#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 

using namespace cv; 
int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow w; 
    w.show(); 
    IplImage *image = cvLoadImage("E:\\lena.jpg"); //If this is removed, the program runs OK 
    return a.exec(); 
} 

내 .PRO 파일은 다음과 같습니다 : 내 프로그램을 실행하는 동안, 나는 다음과 같은 오류가

OPENCV_DIR:C:\OpenCV\opencv\build\x64\mingw Path: G:\5.0.2\Tools\MinGW\bin;G:\Qt\5.0.2\mingw47_32\bin

무엇이 문제일까요?

답변

1

(디버그에 구축 할 수있는 경우) 각 LIB의 끝에서

-lopencv_core244 \ 
-lopencv_highgui244 \ 
-lopencv_imgproc244 

참고

-lopencv_core244d \ 
-lopencv_highgui244d \ 
-lopencv_imgproc244d 
  • 에 'D'를 변경해야 할 수도 있습니다
1

가능한 경우 OpenCV 2.x API를 사용하는 것이 좋습니다. 오류 처리가 더 좋습니다.

이 :: CV 매트 이미지 = CV : imread ("E : \의 lena.jpg") 될 것이다;

이미지가 비어 있으면 잘못된 경로임을 나타냅니다.

는 또한, OpenCV의의 DLL이 실행 파일 (코어, highgui 및 imgproc)의 경로에 있는지 확인하십시오.

+0

imread와 동일한 오류가 발생합니다. 이상하게도, 디버그 폴더에서 exe를 실행할 때 이미지가 보이지만, Qt Creator 내에서 실행하면 그렇지 않습니다. – krammer

+0

dll로드 문제가 아닌지 확실합니까? 릴리스 및 디버그에서 실패합니까? 아니면 그 중 하나만 실패합니까? http://www.barbato.us/2010/09/20/using-opencv-within-qtcreator-in-windows/ 이 블로그는 디버그에서 opencv 라이브러리를 실행하기 위해 Visual C++ Express 패키지가 필요하다고 언급합니다. –

+0

시스템에 Visual Studio가 설치되어 있습니다. 릴리스 또는 디버그 디렉토리에서 exe를 실행하면 이미지가 표시되지만 IDE에서 실행하려고하면 표시되지 않습니다. – krammer

0

문제를 해결 했습니까?

시스템 추가 ("PAUSE")를 시도해 보셨습니까? 반환 후 a.exec(); ?

그냥 몇 가지 추가 사항 :

또한 마지막을, 당신이 셋째 오류

을 찾을 수 있다면

try 
{ 
... 
} 
catch (Exception e) 
{ 
... 
} 

보고하려고 lena.jpg

에 대한 파일 권한을 확인, 경로를 사용할 수 있는지 확인하십시오. E : \ lena.jpg

관련 문제