OpenCV findContours Funktionsproblem

8

Ich versuche, die findContours-Funktion in OpenCV zu verwenden, aber VS 2008 gibt eine Fehlermeldung aus, die besagt:

OpenCV Error: Falsches Flag (Parameter- oder Strukturfeld) (Nicht erkannt oder nicht unterstützt ed array type) in unbekannter Funktion, Datei ........ \ ocv \ opencv \ src \ cxcore \ cxarr ay.cpp, Zeile 2476

Diese Anwendung hat die Runtime aufgefordert, sie auf ungewöhnliche Weise zu beenden. Bitte kontaktieren Sie das Support-Team der Anwendung für weitere Informationen. Drücken Sie eine beliebige Taste, um fortzufahren . . .

Hier ist der Code:

%Vor%

Vielen Dank im Voraus

    
user123668 21.06.2010, 19:15
quelle

3 Antworten

3

FindContours akzeptiert nur Binärbilder. Das heißt, jedes Bild, das ausgegeben wird cvThreshold cvAdapiveThreshold cvCanny

versuchen Sie, diese Anweisung vor cv :: findContours

hinzuzufügen %Vor%

Rufen Sie dann findcontours mit resultingImage auf.

Wenn es funktioniert, sollten Sie die korrekten Parameter in cvThreshold eingeben (100 ist nur ein Beispiel). Überprüfen Sie die Referenz für diese Angelegenheit.

EDIT: resultingImage sollte ein Single-Channel-Bild sein !!

    
dnul 21.06.2010 22:11
quelle
3

Ich hatte das gleiche Problem (oder zumindest ein ähnliches) mit dieser Funktion. Ich konnte es nicht beheben, also benutzte ich stattdessen die alte C-Stil-Funktion cvFindContours. Ich habe eine Beispielfunktion hinzugefügt, in der ich die Funktion cvFindContours verwendet habe, um ein Blob-Bild zu bereinigen. Dies ist vielleicht nicht die schnellste Lösung, aber zumindest funktioniert es.

%Vor%     
NotNamedDwayne 26.07.2010 23:25
quelle
1

Für Ihren v-Vektor müssen Sie ein Leerzeichen hinzufügen:

%Vor%

Sehr subtil und dumm, aber es funktioniert.

    
Douglas 07.06.2011 21:35
quelle