2017-03-01 2 views
-1

Von einem grauen Bild habe ich versucht, alle angeschlossenen Komponenten mit bwconcomp zu extrahieren, dann arbeite ich an jeder angeschlossenen Komponente. Ich möchte ein neues Bild mit der Größe des Originalbildes einiger spezifischer verbundener Komponenten zeichnen. Ich sah viele Arbeiten basierend auf dem Bereich, die größte Komponente ... aber für mich habe ich neue Parameter, die die verbundenen Komponenten filtern, Wie kann ich ein neues Bild mit der ursprünglichen Bildgröße ein bestimmtes verbundenes Bauteil an seinem ursprünglichen Ort zeichnen ?? Danke :)nur specefic verbundene Komponenten speichern

+0

Wie „die Option“ Sie eine bestimmte verbundene Komponente zu beginnen? Sie müssen das wissen, bevor Sie antworten. – rayryeng

+0

Diese Frage ist mir nicht klar. Können Sie einen Beispielcode und ein Beispiel für das gewünschte Ergebnis angeben? – Poelie

+0

Die [Dokumentation] (https://www.mathworks.com/help/images/ref/bconncomp.html#bu2xeh0-1) für 'bwconncomp' enthält ein Beispiel, wie eine bestimmte Komponente aus einem Bild entfernt wird. Das Hinzufügen von Komponenten zu einem neuen Bild basierend darauf sollte einfach sein. – beaker

Antwort

0

Wenn ich Sie richtig verstehe, möchten Sie eine beschriftete Karte der verbundenen Komponenten nehmen und etwas zu jeder Komponente einzeln machen.

Sie können dies durch finding array elements that meet a condition tun.

Angenommen, Sie Komponenten markiert haben, so dass Sie Ihre Matrix ist mylabels

1 1 1 2 2 2 
1 1 3 3 3 2 
1 3 3 3 4 4 
5 5 5 5 4 4 

einen bestimmten Bereich auszuwählen, 3 beispielsweise

regionA = (mylabels == 3); 

verwenden, die eine Karte gerade Region produzieren 3 wie folgt:

0 0 0 0 0 0 
0 0 1 1 1 0 
0 1 1 1 0 0 
0 0 0 0 0 0 

Sie können diese Karte als Maske für Isolat verwenden e bestimmte Teile des Originalbildes:

subimage = image .* regionA; 

Sie zusammen

regionAB = regionA | regionB; 

regionAB = (mylabels == 3 | mylabels == 4); 
mehrere Etiketten

oder durch Auswahl von mehreren angeschlossenen Komponenten durch die Kombination ihrer Karten kombinieren

+0

Hallo, danke für deine Antwort, wie kennst du das Etikett der angeschlossenen Komponente ?? für l = 1: CC.NumObjects if (sthing) diese verbundene Komponente halten anderes abnehmen Ende Ende – user3967257

Verwandte Themen