2016-04-05 32 views
0

Amacım Qt 5.5.1'de basit bir OpenCV contrib (extra) modülünü çalıştırmak.OpenCV basit bir kod başarıyla derler ama çalışma zamanında çöküyor

Adım:

1) QT uygulama uygulamayı hazırlandı;

2) için main.cpp dosyayı değiştirdi:

#include <QApplication> 
#include <opencv2/core/utility.hpp> 
#include <opencv2/tracking.hpp> 
#include <opencv2/videoio.hpp> 
#include <opencv2/highgui.hpp> 
#include <iostream> 
#include <cstring> 
#include <QDebug> 

using namespace std; 
using namespace cv; 

int main(int argc, char*argv[]) 
{ 
    qDebug() <<"start!" << endl; 

    QApplication a(argc, argv); 

    string trackingAlg = "KCF"; 
    MultiTracker trackers(trackingAlg); 

    qDebug() <<"success!" << endl; 

    return a.exec(); 
} 

ve burada benim .pro dosyasıdır: başarıyla

QT  += core gui 
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = tracker4 

CONFIG += c++11 

TEMPLATE = app 
SOURCES += main.cpp 

INCLUDEPATH += /usr/local/include/opencv 

LIBS += `pkg-config opencv --libs` 
LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui -lopencv_videoio -lopencv_tracking 

program derler, ama çalışma zamanında, hatta main() çalıştırmadan çöküyor işlevi. Code :: Blocks içinde çalıştırdığımda böyle bir hatayı alamıyorum ama Qt'de hala bu sorun var.

Qt 5.5.1 ve Ubuntu 14.04 kullanıyorum.

Bu "segment hatası" hatasını kendi makinesinde oluşturabilir mi?

+0

Sadece 'imshow ("windowname", img) 'içeren çok basit bir kod içeren Qt Console Uygulamasının da düştüğünü fark ettim. Lütfen diğer opencv işlevlerinin (Mat tipi, öykünme, ... gibi) iyi çalıştığını unutmayın. – mask

cevap

0

QT 5 için, OpenCV'yi QT = OFF ile oluşturun. QT 4 için OpenCV'yi QT = ON ile oluşturun.