2017-10-28 2 views
0

Ich brauche Blobs Indizes zu finden und dann sie im Kontinuum Bild zu maskieren. Wer kann mir helfen? Bitte lassen Sie mich wissen, wie ich die Indizes von Blobs auflisten kann. Ich verwende blob_analyzer, um die Bilder zu analysieren. Prost MahtabBlobs Indizes und maskieren es im Kontinuum Bild

Antwort

0

Es wäre hilfreich, mehr Informationen zu haben, aber ich nehme an, Sie blob_analyzer von der Coyote IDL-Bibliothek verwenden.

Also, Sie ein Blob-Objekt aus dem Bild machen:

blobs = obj_new('blob_analyzer', image)

Sie herausfinden können, wie viele Blobs wurden unter Verwendung der NumberOfBlobs Methode identifiziert:

n_blobs = blobs -> NumberOfBlobs()

Alternativ Sie kann zusammenfassende Informationen über alle Blobs mit der ReportStats Methode erhalten:

blobs -> ReportStats

für die Indizes für die i-te Blob, verwenden Sie die GetIndices Methode erhalten:

indices = blobs -> GetIndices(i)

Dies sollten Sie einen 1D-Vektor der Indizes geben, die man in 2D-Indizes umwandeln kann ARRAY_INDICES mit , wenn du willst. Das wäre:

indices_2D = array_indices(image, indices)

Um die Flecken in der Bildmaske, können Sie einfach tun:

new_image = image ;Make a copy of the original image 
new_image[indices] = 0 ;Set all the pixels in the blob to 0 

Das wird natürlich nur die Pixel in der i-ten blob maskieren, aber Sie könnten einfach eine Schleife machen, um den obigen Prozess für alle Blobs zu wiederholen.

new_image = image ;Make a copy of the original image 
;Loop through and mask blobs 
for i = 0, n_blobs - 1 do begin 

    indices = blobs -> GetIndices(i) ;Get indices for the ith blob 
    new_image[indices] = 0   ;Mask those pixels 

endfor 
Verwandte Themen