2013-07-10 10 views
10

Ich benutze OpenCV für eine C++ Anwendung. Ich habe ein 8-Bit-Binärbild mit einigen Objekten. Die Objekte sind alle farbig 255, während alles im Hintergrund farbig 0 ist. Jedes Objekt hat keine leeren (schwarzen) Pixel im Inneren. Mit anderen Worten, jedes Objekt ist vollständig weiß. Die Objekte sind NICHT miteinander verbunden. Hier ist, was ich daraus extrahieren möchte:OpenCV wie man eine Liste der verbundenen Komponenten in einem binären Bild findet

Ich möchte eine Art Liste von Objekten extrahieren, von denen ich eine Vorstellung von der Position jedes Objekts in dieser Liste habe. Dies könnte cvConnectedComponents() oder irgendetwas anderes verwenden. Ich brauche einen Hinweis darauf, wo sich jedes Objekt im Bild befindet. Dies könnte in Form eines Begrenzungsrechtecks ​​für jedes Objekt oder Median oder Mittelpunkt sein, basierend auf irgendeiner Berechnung oder irgendetwas, das mir ein Maß der Objektposition in dem Bild gibt. Irgendwelche Hinweise darauf, was OpenCV untersucht?

+3

Studieren Sie dieses Beispiel. http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html – William

+2

mögliches Duplikat von [verbundenen Komponenten in OpenCV] (http://stackoverflow.com/questions/12688524/connected-components- in-opencv) – Kiran

Antwort

7

Sie müssen cv :: floodFill die von cv :: findCountours zurückgegebenen Konturen füllen. Siehe this example für findContours und this one für floodFill

+2

Ich denke die Antwort damit sollte nun geändert werden, dass 3.0 [endlich] raus ist. –

Verwandte Themen