image

matchImages

Beschreibung

Vergleicht ein Abfragebild mit den Bildern in einer Tabelle. Diese Aktion ist nützlich für Aufgaben wie das Auffinden von Objekten in einer Szene oder die Identifizierung ähnlicher Bilder in einer großen Datenbank.

image.matchImages / table={<Tabelle>} queryImage={<Bildpfad>} casOut={<Ausgabetabelle>} <methodOptions={<Methodenoptionen>}> <threshold=Wert> <highlight=true|false>;
Einstellungen
ParameterBeschreibung
tableGibt die Eingabetabelle an, die die zu durchsuchenden Bilder enthält.
queryImageGibt das einzelne Bild an, das als Referenz für den Abgleich verwendet werden soll.
casOutGibt die Ausgabetabelle an, in der die Ergebnisse des Abgleichs gespeichert werden sollen.
methodOptionsGibt die für den Abgleich verwendete Methode an. 'TEMPLATEMATCH' ist eine einfache pixelbasierte Methode, während 'DESCRIPTORMATCH' robustere, auf Merkmalen basierende Techniken wie ORB oder BRISK verwendet.
descType(Unterparameter von methodOptions) Gibt den Typ des Deskriptors an, der auf den Keypoints berechnet werden soll, wenn method='DESCRIPTORMATCH'. Optionen sind 'BRISK', 'ORB'.
thresholdRatio(Unterparameter von methodOptions) Gibt das Schwellenwertverhältnis zum Eliminieren schwacher Übereinstimmungen in Deskriptorpaaren an.
thresholdGibt den Schwellenwert (0 bis 1) zum Filtern von Übereinstimmungen mit geringer Konfidenz an. Ein höherer Wert bedeutet strengere Übereinstimmung.
highlightWenn auf True gesetzt, werden in den Ausgabebildern Rechtecke um die erkannten Übereinstimmungen gezeichnet.
copyVarsGibt eine Liste von Spalten an, die von der Eingabetabelle in die Ausgabetabelle kopiert werden sollen.
decodeWenn auf True gesetzt, werden die Bilder vor der Verarbeitung dekodiert. Dies ist erforderlich, wenn die Eingabebilder in einem komprimierten Format vorliegen.
Erstellung der Eingabe-Bildtabelle

Dieser Schritt lädt Bilder aus einem angegebenen Serverpfad in eine CAS-Tabelle. Die Tabelle 'images_to_search' wird in der CASUSER-Caslib erstellt. Der Pfad '/path/to/your/images/' muss durch den tatsächlichen Speicherort der Bilder ersetzt werden. Dieser Schritt ist eine Voraussetzung für die Ausführung der matchImages-Aktion.

Kopiert!
1PROC CAS;
2 image.loadImages /
3 path='path/to/your/images/'
4 casOut={name='images_to_search', caslib='CASUSER', replace=true};
5RUN;

Beispiele

Dieses Beispiel führt einen grundlegenden Bildabgleich mit der 'TEMPLATEMATCH'-Methode durch. Es sucht nach dem Bild 'logo.png' in der Tabelle 'images_to_search'. Diese Methode ist schnell, aber empfindlich gegenüber Änderungen in Skalierung und Drehung.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 image.matchImages /
3 TABLE={name='images_to_search', caslib='CASUSER'}
4 queryImage={path='logo.png', caslib='CASUSER'}
5 casOut={name='matched_results_simple', caslib='CASUSER', replace=true}
6 methodOptions={method='TEMPLATEMATCH'};
7RUN;
Ergebnis :
Eine Ausgabetabelle namens 'matched_results_simple' wird erstellt. Sie listet alle gefundenen Übereinstimmungen mit ihren Positionen und Abgleich-Scores auf. Da 'highlight' nicht angegeben ist, werden die Ausgabebilder keine visuellen Markierungen haben.

Dieses fortgeschrittene Beispiel verwendet die 'DESCRIPTORMATCH'-Methode mit 'BRISK'-Deskriptoren, die robust gegenüber Skalierungs- und Drehungsänderungen ist. Ein 'thresholdRatio' von 0.7 wird verwendet, um schwache Merkmalsübereinstimmungen zu filtern. Nur Übereinstimmungen mit einem Gesamtscore über dem 'threshold' von 0.8 werden beibehalten. Die 'highlight=true'-Option zeichnet Rechtecke um die erkannten Übereinstimmungen in den Ausgabebildern.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 image.matchImages /
3 TABLE={name='images_to_search'}
4 queryImage={path='object_to_find.jpg'}
5 casOut={name='matched_results_detailed', replace=true}
6 methodOptions={method='DESCRIPTORMATCH', descType='BRISK', thresholdRatio=0.7}
7 threshold=0.8
8 highlight=true
9 copyVars={'_id_', 'image_name'};
10RUN;
Ergebnis :
Erstellt eine Tabelle 'matched_results_detailed' mit den Bildern, die eine Übereinstimmung mit einem Score von 0.8 oder höher aufweisen. Dank 'highlight=true' enthalten die Bilder in der Ausgabetabelle ein Rechteck, das den übereinstimmenden Bereich visuell markiert. Die Spalten '_id_' und 'image_name' werden ebenfalls in die Ergebnistabelle kopiert.

FAQ

Was ist der Zweck der Aktion `matchImages`?
Welche Methoden stehen für den Bildabgleich zur Verfügung?
Wie kann man die gefundenen Übereinstimmungen in den Ausgabebildern visuell hervorheben?
Was bewirkt der `threshold`-Parameter?
Wie gibt man das zu suchende Bild an?