puntatore nullo in opencv (QT) durante l'esecuzione
-
26-10-2019 - |
Domanda
Ciao ho un MacBook Pro con OSX 10.7. Ho appena installato Qt (Nokia), OpenCV, cmake. Non ho mai lavorato con uno dei rischi. Così ho iniziato il mio primo tutorial. Ho creato una nuova applicazione GUI Qt. Ho cambiato il mio main.cpp a:
#include <QtGui/QApplication>
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
IplImage* img = 0;
img = cvLoadImage("cat.jpg");
cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
cvShowImage("Example1", img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Example1");
return a.exec();
}
Ho cambiato anche il mio file .pro:
QT += core gui
TARGET = untitled1
TEMPLATE = app
INCLUDEPATH = /usr/local/include
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
LIBS += -lm -lopencv_core -lopencv_highgui -lopencv_video -lopencv_imgproc
FORMS += mainwindow.ui
Per il resto:
il cat.jpg si trova nella cartella del progetto qt (accanto al main.cpp)
Ora, quando costruisco questo ed eseguirlo. ottengo questo errore:
Starting /Users/olivierjanssens/untitled1-build-desktop-Desktop_Qt_4_7_4_for_GCC__Qt_SDK__Debug/untitled1.app/Contents/MacOS/untitled1...
OpenCV Error: Null pointer (NULL array pointer is passed) in cvGetMat, file /Users/olivierjanssens/source/OpenCV-2.3.1/modules/core/src/array.cpp, line 2382
terminate called throwing an exceptionThe program has unexpectedly finished.
/Users/olivierjanssens/untitled1-build-desktop-Desktop_Qt_4_7_4_for_GCC__Qt_SDK__Debug/untitled1.app/Contents/MacOS/untitled1 exited with code 0
La finestra si apre, ma poi si blocca e nessuna immagine viene visualizzata.
Che cosa sono io che faccio male?
Soluzione
cat.jpg
non è probabilmente nella directory giusta.
Se non si specifica un percorso che ricerca la directory corrente, che è probabilmente /Users/olivierjanssens/untitled1-build-desktop-Desktop_Qt_4_7_4_for_GCC__Qt_SDK__Debug
o /Users/olivierjanssens/untitled1-build-desktop-Desktop_Qt_4_7_4_for_GCC__Qt_SDK__Debug/untitled1.app/Contents/MacOS
. La directory con main.cpp
in esso non viene cercato.
Prova fornire un percorso completo per cvLoadImage()
(qualcosa come "/Users/olivierjanssens/untitled1/cat.jpg"
)