DeduplicateSimilarImages
Bildverarbeitung, Optimierung
Beschreibung
Findet wahrnehmungsähnliche indirekte Image-XObjects, leitet ihre Verweise auf ein deterministisches kanonisches Bild um und entfernt optional die doppelten Objekte
Kandidaten müssen nach Ausschluss codierter Containerfelder dasselbe semantische Bildwörterbuch besitzen und anschließend einen 64-Bit-Differenzhash-Schwellenwert sowie einen Vergleich decodierter Farbabtastwerte mit 64 × 64 bestehen
Syntax
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer): Integer; Overload;
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer;
Out Stats: TPDFlibImageSimilarityDedupStats): Integer; Overload;
Parameter
| MaxHashDistance | Maximale Hamming-Distanz von 0 bis 7 zwischen den beiden 64-Bit-Differenzhashes |
|---|---|
| MaxMeanError | Maximale mittlere absolute Kanaldifferenz von 0 bis 255 über die decodierten Abtastwerte |
| MaxChannelError | Maximale absolute Differenz von 0 bis 255 für jeden abgetasteten Farbkanal |
| Options | PDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, beide Flags oder 0 |
| Stats | Empfängt Zähler für Decodierung, Kandidaten, Vergleiche, akzeptierte Fehler, Referenzen, Nutzlast und Objekterfassung |
Rückgabewerte
| Positive value | Die Anzahl ähnlicher Bildobjekte, die zusammengeführt oder von einem Probelauf gemeldet wurden |
|---|---|
| 0 | Es wurde kein zulässiges Paar gefunden, kein Dokument ist geladen oder ein Schwellenwert beziehungsweise eine Option ist ungültig |
Anmerkungen
Die niedrigste Objektnummer und Generation jeder akzeptierten Gruppe wird zum kanonischen Bild
/Length, /Filter und /DecodeParms beschreiben die kodierte Speicherung und dürfen abweichen; Abmessungen, Farbraum, Bittiefe, Masken, Dekodierungsarrays, Interpolation, optionaler Inhalt, Metadaten und andere semantische Wörterbucheinträge müssen dagegen übereinstimmen
Nicht decodierbare Bilder werden übersprungen und in DecodeFailures gezählt
Der Hash wird in acht indizierte Bänder geteilt, wodurch die Kandidatensuche für den unterstützten Entfernungsbereich begrenzt wird, bevor dekodierte Stichproben verglichen werden
Dies ist bewusst ein angenäherter visueller Vorgang, da er ein festes 64 × 64-Raster abtastet; Unterschiede unterhalb des Abtastrasters können daher selbst dann übersehen werden, wenn alle Schwellenwerte Null sind
Verwenden Sie DeduplicateResources, wenn ein bytegenauer Nachweis erforderlich ist, und führen Sie vor der Auswahl von Schwellenwerten für unbekannte Inhalte einen Probelauf sowie GetSimilarImageDeduplicationReportJSON aus
Beispiel
var
Stats: TPDFlibImageSimilarityDedupStats;
Merged: Integer;
begin
Merged:= PDF.DeduplicateSimilarImages(2, 3, 12,
PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
Siehe auch
GetSimilarImageDeduplicationReportJSON, TPDFlibImageSimilarityDedupStats, DeduplicateResources