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.
| Parameter | Beschreibung |
|---|---|
| table | Gibt die Eingabetabelle an, die die zu durchsuchenden Bilder enthält. |
| queryImage | Gibt das einzelne Bild an, das als Referenz für den Abgleich verwendet werden soll. |
| casOut | Gibt die Ausgabetabelle an, in der die Ergebnisse des Abgleichs gespeichert werden sollen. |
| methodOptions | Gibt 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. |
| threshold | Gibt den Schwellenwert (0 bis 1) zum Filtern von Übereinstimmungen mit geringer Konfidenz an. Ein höherer Wert bedeutet strengere Übereinstimmung. |
| highlight | Wenn auf True gesetzt, werden in den Ausgabebildern Rechtecke um die erkannten Übereinstimmungen gezeichnet. |
| copyVars | Gibt eine Liste von Spalten an, die von der Eingabetabelle in die Ausgabetabelle kopiert werden sollen. |
| decode | Wenn auf True gesetzt, werden die Bilder vor der Verarbeitung dekodiert. Dies ist erforderlich, wenn die Eingabebilder in einem komprimierten Format vorliegen. |
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.
| 1 | PROC CAS; |
| 2 | image.loadImages / |
| 3 | path='path/to/your/images/' |
| 4 | casOut={name='images_to_search', caslib='CASUSER', replace=true}; |
| 5 | RUN; |
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.
| 1 | PROC 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'}; |
| 7 | RUN; |
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.
| 1 | PROC 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'}; |
| 10 | RUN; |