Funktionen > Vektor und Matrix > Weitere Array-Funktionen > Beispiel: Zweidimensionale Korrelation und Prototypvergleich
Beispiel: Zweidimensionale Korrelation und Prototypvergleich
Veranschaulicht die Korrelation eines zweidimensionalen Kerns mit einem Bild im räumlichen Bereich.
Ein interessanter Kern ist der Gauß-Kern, der einen glättenden Effekt hervorruft.
Weitere Informationen zur Verwendung dieses Beispiels finden Sie unter Bildverarbeitungsbeispiele.
Zweidimensionale Korrelation
1. Verwenden Sie die Funktion READ_IMAGE, um ein Bild einzulesen.
Zum Kopieren dieses Ausdrucks klicken
2. Verwenden Sie die Funktion WRITEBMP, um das Bild in einer Datei zu speichern.
Zum Kopieren dieses Ausdrucks klicken
3. Definieren Sie den Kernbereich und die Funktion.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
4. Werten Sie die 5x5-Kernmatrix aus.
Zum Kopieren dieses Ausdrucks klicken
Dieser Kern ist symmetrisch, sodass der Effekt dem einer Faltung entspricht – äquivalent zu der Korrelation mit umgekehrtem Kern.
5. Definieren Sie einen Skalierungsfaktor mcscale.
Zum Kopieren dieses Ausdrucks klicken
6. Berechnen Sie die Kreuzkorrelation, und skalieren Sie das Ergebnis auf einer 8-Bit-Grauskala von 0 bis 255.
Zum Kopieren dieses Ausdrucks klicken
7. Verwenden Sie die Funktion WRITEBMP, um die Ergebnisse in einer Datei zu speichern.
Zum Kopieren dieses Ausdrucks klicken
8. Plotten Sie das ursprüngliche Bild und die Korrelation des Bildes mit dem Kern.
(greyscale_dog.bmp)
(dog_cross.bmp)
Zuordnen von Prototypen
1. Verwenden Sie die Funktion READ_IMAGE, um in einem neuen Bild zu lesen.
Zum Kopieren dieses Ausdrucks klicken
2. Verwenden Sie die Funktion WRITEBMP, um die Ergebnisse in einer Datei zu speichern.
Zum Kopieren dieses Ausdrucks klicken
(peas_carrots.bmp)
Zum Kopieren dieses Ausdrucks klicken
Diese Auswahl verwendet eine repräsentative Karotte als Vorlage.
3. Definieren Sie die Höhe und Breite der Schablone.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
4. Definieren Sie die Funktion val und verwenden Sie sie in einer matrix-Funktion, um die Schablone zu erzeugen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
5. Plotten Sie die Schablone und die Karottenbilder.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
(template.bmp)
(carrot.bmp)
6. Definieren Sie den Korrelationsschwellenwert.
Zum Kopieren dieses Ausdrucks klicken
7. Verwenden Sie die uniforme Schablone derselben Größe wie die ausgewählte Karotte, oder verwenden Sie das ausgewählte repräsentative Karottenbild selbst, um die Anzahl der Übereinstimmungen zu berechnen:
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
(carrot_vect.bmp)
Die meisten Erbsen werden von den unkorrelierten Schwellenwerten ausgeblendet, während die meisten Karotten nach wie vor sichtbar sind. Die Zuordnung wird zwischen dem ursprünglichen Bild und der rechteckigen Schablone uniformer Dichte vorgenommen, die in diesem Beispiel einer Packung Tiefkühlgemüse grob die Karotte heraushebt.
8. Berechnen Sie den ungefähren Prozentsatz von Karotten im ursprünglichen Bild.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Diese Technik ist auch nützlich zum Zählen von Bakterien und anderen prozentualen Abschätzungen auf der Grundlage von Bildern.
War dies hilfreich?