image

compareImages

Beschreibung

Vergleicht Bilder in einer Tabelle mit denen in einer anderen. Diese Aktion ist nützlich, um die Ähnlichkeit oder den Unterschied zwischen zwei Bildersätzen zu quantifizieren, beispielsweise um die Qualität von komprimierten Bildern zu bewerten oder um Änderungen zwischen Bildversionen zu erkennen.

image.compareImages / casOut={...}, copyVars={...}, maximum=<double>, method="PSNR" | "SSIM", minimum=<double>, pairAll=TRUE | FALSE, pairOnPath=TRUE | FALSE, pairReferenceOn="<variable-name>", pairSourceOn="<variable-name>", referenceImages={...}, separateChannels=TRUE | FALSE, sourceImages={...};
Einstellungen
ParameterBeschreibung
casOutGibt die Einstellungen für eine Ausgabetabelle an, in der die Vergleichsergebnisse gespeichert werden.
copyVarsGibt die Variablen an, die von der Eingabetabelle in die Ausgabetabelle kopiert werden sollen.
maximumGibt den maximalen zu meldenden Vergleichswert an.
methodGibt den Namen der Bildvergleichsmethode an. 'SSIM' (Structural Similarity Index) bewertet die wahrgenommene Ähnlichkeit, während 'PSNR' (Peak Signal-to-Noise Ratio) das Verhältnis zwischen der maximal möglichen Leistung eines Signals und der Leistung des verfälschenden Rauschens misst.
minimumGibt den minimalen zu meldenden Vergleichswert an.
pairAllWenn auf True gesetzt, vergleicht alle Bilder aus der Quelltabelle mit allen Bildern aus der Referenztabelle, was zu einem kartesischen Produkt der Vergleiche führt.
pairOnPathWenn auf True gesetzt, gibt an, dass die Paarungsvariablen Dateipfade sind. Dies ist nützlich, wenn Bilder mit demselben Dateinamen in verschiedenen Verzeichnissen verglichen werden.
pairReferenceOnGibt den Namen der Spalte in der Referenzbildtabelle an, die die Paarungsvariable enthält.
pairSourceOnGibt den Namen der Spalte in der Quellbildtabelle an, die die Paarungsvariable enthält.
referenceImagesGibt die Parameterliste der Eingabebildtabelle an, die Referenzbilder enthält.
separateChannelsWenn auf True gesetzt, vergleicht jeden Kanal (z. B. Rot, Grün, Blau) separat. Andernfalls werden die Bilder in Graustufen umgewandelt, bevor der Vergleich durchgeführt wird.
sourceImagesGibt die Liste der Parameter für die Eingabebildtabelle an, die Quellbilder enthält.
Datenvorbereitung: Laden von Quell- und Referenzbildern

Dieses Beispiel lädt zwei Bildersätze in CAS-Tabellen. Die Tabelle 'source_images' enthält die zu bewertenden Bilder und die Tabelle 'reference_images' die Originalbilder. Diese Tabellen werden in den folgenden Beispielen verwendet.

Kopiert!
1PROC CAS;
2 loadImages /
3 path="/pfad/zu/ihren/quellbildern/"
4 casOut={name="source_images", caslib="casuser", replace=true};
5 loadImages /
6 path="/pfad/zu/ihren/referenzbildern/"
7 casOut={name="reference_images", caslib="casuser", replace=true};
8RUN;

Beispiele

Dieses Beispiel vergleicht Bilder zwischen den Tabellen 'source_images' und 'reference_images' unter Verwendung der Standardmethode SSIM (Structural Similarity Index). Die Bilder werden anhand ihrer Dateipfade in den beiden Tabellen gepaart.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3image.compareImages / TABLE={name='source_images', caslib='casuser'}, referenceImages={TABLE={name='reference_images', caslib='casuser'}}, casOut={name='comparison_results', caslib='casuser', replace=true};
4 
5RUN;
6 
Ergebnis :
Die Ausgabetabelle 'comparison_results' wird erstellt. Sie enthält die SSIM-Werte für jedes verglichene Bildpaar. Ein Wert nahe 1 zeigt eine hohe Ähnlichkeit an.

Dieses Beispiel verwendet die PSNR-Methode (Peak Signal-to-Noise Ratio) zum Vergleichen von Bildern. Es vergleicht jeden Kanal separat (separateChannels=true) und filtert die Ergebnisse, um nur Vergleiche mit einem PSNR-Wert zwischen 20 und 50 zu melden. Es kopiert auch die Spalte '_label_' aus der Quelltabelle in die Ergebnistabelle.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3image.compareImages / TABLE={name='source_images', caslib='casuser'}, referenceImages={TABLE={name='reference_images', caslib='casuser'}}, casOut={name='comparison_results_psnr', caslib='casuser', replace=true}, method='PSNR', separateChannels=true, minimum=20, maximum=50, copyVars={'_label_'};
4 
5RUN;
6 
Ergebnis :
Die Ausgabetabelle 'comparison_results_psnr' wird erstellt. Sie enthält die PSNR-Werte für jeden Kanal der verglichenen Bildpaare, wobei nur Ergebnisse zwischen 20 und 50 aufgeführt sind. Höhere PSNR-Werte deuten auf eine bessere Bildqualität hin. Die Spalte '_label_' ist ebenfalls in der Ausgabe vorhanden.

In diesem Szenario wird jedes Bild in der 'source_images'-Tabelle mit jedem Bild in der 'reference_images'-Tabelle verglichen, indem 'pairAll=true' gesetzt wird. Dies ist nützlich, um das ähnlichste Bild in einem Referenzsatz für jedes Quellbild zu finden.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3image.compareImages / TABLE={name='source_images', caslib='casuser'}, referenceImages={TABLE={name='reference_images', caslib='casuser'}}, casOut={name='comparison_all_pairs', caslib='casuser', replace=true}, method='SSIM', pairAll=true;
4 
5RUN;
6 
Ergebnis :
Die Ausgabetabelle 'comparison_all_pairs' enthält die Ähnlichkeitswerte für alle möglichen Paare zwischen den beiden Tabellen. Die Größe der Ausgabetabelle ist das Produkt der Anzahl der Zeilen in den beiden Eingabetabellen.

FAQ

Was ist der Zweck der `compareImages`-Aktion?
Welche Vergleichsmethoden unterstützt die `compareImages`-Aktion?
Wie kann ich alle Bilder aus einer Quelltabelle mit allen Bildern in einer Referenztabelle vergleichen?
Was bewirkt der Parameter `separateChannels`?
Wie gebe ich die zu vergleichenden Bildtabellen an?
Ist es möglich, die Ergebnisse basierend auf dem Vergleichswert zu filtern?