Hallo Zusammen
Ich verwende den MeanShiftAlgorithm von OpenCV in unsere Diplomarbeit.
Das Example in QT4.6 funktiniert gut. Nur in unsere eigene GUI
Anwendung, wo wir ein 320x3x240 RGB Stream erhalten, gibt es folgende
Fehlermeldung:
OpenCV Error: Assertion failed (dims > 0 && hist.data) in
calcBackProject, file
/home/luca/OpenCvSDK/opencv-src/modules/imgproc/src/histogram.cpp, line
1163
terminate called after throwing an instance of 'cv::Exception'
what():
/home/luca/OpenCvSDK/opencv-src/modules/imgproc/src/histogram.cpp:1163:
error: (-215) dims > 0 && hist.data in function calcBackProject
Die GUI wird unter Ubuntu mit Eclipse/QT4.6 programmiert.
hier noch ein code-schnippsel (im Anhang noch 2 *.h files):
in ersten Durchgang wird eine Region of Interest platziert, da
funktioniert das Programm noch ohen Absturz.
In der nächsten Runde (else), soll er Anhand des Hystogramms das Objekt
in den folgenden RGB-Streaming erkennen und mit einem neuen Rechteck
verfolgen.
hier noch die Funktion im file histogramm.cpp / line 1163 (wie in
Fehlermeldung angegeben)
Die Paramter für die Region of Interest sind die folgenden:
m_meanShift_xPos= 80
m_meanShift_yPos= 120
m_meanShift_width= 80
m_meanShift_height= 90
...
Hi,
nur mal auf den ersten Blick: Der finder wird bei jedem Aufruf der
Methode neu erzeugt. Im if-Zweig, definiert du was gesucht werden soll:
finder.setHistogram(colorhist);
finder.setThreshold(0.2f);
Allerdings enthält beim zweiten Aufruf der finder diese Informationen
nicht mehr (else-Zweig), da er neu angelegt wird. Aber ich kenne die API
von opencv zu wenig um zu sagen ob hier das Problem liegt....
Aber ist ja kein Problem das zu testen, kannst ja finder mal static
machen für den Test. Wenn du den Fehler findest kannst du ja mal eine
Rückmeldung geben woran es gelegen hat.
Viele Grüße,
Narfie
ich habe den finder und andere Eigenschaften im Header eingefügt. Jetzt
habe ich aber folgende Fehlermeldung:
OpenCV Error: Assertion failed (j < nimages) in histPrepareImages, file
/home/luca/OpenCvSDK/opencv-src/modules/imgproc/src/histogram.cpp, line
148
terminate called after throwing an instance of 'cv::Exception' what():
/home/luca/OpenCvSDK/opencv-src/modules/imgproc/src/histogram.cpp:148:
error: (-215) j < nimages in function histPrepareImages
Der Absturz ist an der gleichen Stelle im else Zweig...