2017-02-11 2 views
0

färbt Ich habe Anomaliebild vom Graustufenbild berechnet. Das Ergebnis ist im Bild unten:Wie man angeschlossene Komponenten im Binärbild mit opencv in C++

anomaly image with 5 anomalies

einmal bekam ich führen oben ich Anomalien einfärben wollen mit: 1. roter Farbe, wenn die Anomalie von mehr als 10 Pixel ist oder 2. grüne Farbe , wenn der Anomaliebereich gleich oder größer als 10 px ist.

Für die Berechnung der Eigenschaften von Anomalien habe ich opencv Funktion '' connectedComponentsWithStats() '' verwendet. Ich kann diese für mich berechneten Schwerpunkte von Anomalien und auch Bereichen sehen.

Wie kann ich nun alle erkannten angeschlossenen Komponenten farbig darstellen ?? In Matlab habe ich Kometen wie pixelIdList verwendet, um jede verbundene Komponente zu adressieren, und repmat (1,1,3), um binäres Bild auf RGB zu erweitern und dann einen der Kanäle auf '' wahr '' zu setzen, aber wie kann ich alle verbundenen adressieren Komponenten in C++ ??

+0

Willkommen bei [so]. Die Gemeinde braucht [mcve], um dir zu helfen! – jkalden

Antwort

0

Sie könnten das gleiche in OpenCV tun. Ändern Sie die Kanäle Ihres Ausgabebildes auf 3 (RGB/BGR). Dann können Sie jedes Pixel durchlaufen und es anhand der anderen Kriterien (Fläche, Schwerpunkt) in einer verschachtelten if-Schleife auf die gewünschte Farbe einstellen.

+0

Können Sie mir einen Code zur Verfügung stellen: Wie kann ich jede berechnete verbundene Komponente durchlaufen? Wie kann ich Bereiche, die größer als 10 sind, mit roten und verbundenen Komponenten, die weniger als 10 Pixel groß sind, mit Grün versehen? Wie adressiere ich angeschlossene Komponenten? – jok23

Verwandte Themen