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

MaxHashDistanceMaximale Hamming-Distanz von 0 bis 7 zwischen den beiden 64-Bit-Differenzhashes
MaxMeanErrorMaximale mittlere absolute Kanaldifferenz von 0 bis 255 über die decodierten Abtastwerte
MaxChannelErrorMaximale absolute Differenz von 0 bis 255 für jeden abgetasteten Farbkanal
OptionsPDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, beide Flags oder 0
StatsEmpfängt Zähler für Decodierung, Kandidaten, Vergleiche, akzeptierte Fehler, Referenzen, Nutzlast und Objekterfassung

Rückgabewerte

Positive valueDie Anzahl ähnlicher Bildobjekte, die zusammengeführt oder von einem Probelauf gemeldet wurden
0Es 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