DeduplicateSimilarImages

Bildhantering, Optimering

Beskrivning

Hittar perceptuellt lika indirekta image XObjects, omdirigerar deras referenser till en deterministisk kanonisk bild och kan på begäran ta bort de duplicerade objekten

Kandidater måste ha samma semantiska bilddictionary efter att kodade containerfält exkluderats, och därefter klara en 64-bitars difference-hash-tröskel och en 64 × 64 jämförelse av avkodade färgsample

Syntax

Function TPDFlib.DeduplicateSimilarImages(
  MaxHashDistance, MaxMeanError, MaxChannelError,
  Options: Integer): Integer; Overload;
Function TPDFlib.DeduplicateSimilarImages(
  MaxHashDistance, MaxMeanError, MaxChannelError,
  Options: Integer;
  Out Stats: TPDFlibImageSimilarityDedupStats): Integer; Overload;

Parametrar

MaxHashDistanceMaximalt Hamming-avstånd från 0 till 7 mellan de två 64-bitars difference-hasharna
MaxMeanErrorMaximal medelabsolut kanaldifferens från 0 till 255 över de avkodade samplet
MaxChannelErrorMaximal absolut differens från 0 till 255 för vilken samplad färgkanal som helst
OptionsPDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, båda flaggorna, eller 0
StatsTar emot avkodnings-, kandidat-, jämförelse-, godtaget-fel-, referens-, nyttolast- och objektinsamlingsräknare

Returvärden

Positive valueAntalet lika bildobjekt som en torrkörning slog ihop eller rapporterade
0Inget godtagbart par hittades, inget dokument är inläst, eller en tröskel eller option är ogiltig

Anmärkningar

Lägsta objektnummer och generation i varje godtagen grupp blir den kanoniska bilden

/Length, /Filter och /DecodeParms beskriver kodad lagring och får skilja sig, medan dimensioner, färgrymd, bitdjup, masker, avkodningsarrayer, interpolering, optional content, metadata och andra semantiska dictionaryposter måste matcha

Bilder som inte kan avkodas hoppas över och räknas i DecodeFailures

Hashen delas i åtta indexerade band, vilket avgränsar kandidatsökningen för det stödda avståndsintervallet innan avkodade sample jämförs

Detta är en medvetet approximativ visuell operation eftersom den sampar ett fast 64 × 64-rutnät, så skillnader mindre än samplingsrutnätet kan missas även när varje tröskelvärde är noll

Använd DeduplicateResources när byteexakt bevis krävs, och använd en torrkörning plus GetSimilarImageDeduplicationReportJSON innan du väljer tröskelvärden för obekant innehåll

Exempel

var
  Stats: TPDFlibImageSimilarityDedupStats;
  Merged: Integer;
begin
  Merged:= PDF.DeduplicateSimilarImages(2, 3, 12,
    PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, Stats);
  PDF.SaveToFile('optimised.pdf');
end;

Se även

GetSimilarImageDeduplicationReportJSON, TPDFlibImageSimilarityDedupStats, DeduplicateResources