DeduplicateSimilarImages
Traitement des images, optimisation
Description
Recherche les Image XObjects indirects perceptuellement similaires, redirige leurs références vers une image canonique déterministe et supprime facultativement les doublons
Les candidats doivent avoir le même dictionnaire sémantique après exclusion des champs du conteneur encodé, puis satisfaire un seuil de hachage différentiel 64 bits et une comparaison colorée 64 × 64
Syntaxe
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer): Integer; Overload;
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer;
Out Stats: TPDFlibImageSimilarityDedupStats): Integer; Overload;
Paramètres
| MaxHashDistance | Distance de Hamming maximale de 0 à 7 entre les deux hachages différentiels de 64 bits |
|---|---|
| MaxMeanError | Différence absolue moyenne maximale des canaux, de 0 à 255, dans les échantillons décodés |
| MaxChannelError | Différence absolue maximale de 0 à 255 pour tout canal de couleur échantillonné |
| Options | PDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, les deux indicateurs ou 0 |
| Stats | Reçoit les compteurs de décodage, de candidats, de comparaisons, d'erreurs acceptées, de références, de charges utiles et de collecte d'objets |
Valeurs de retour
| Positive value | Nombre d’objets image similaires consolidés ou signalés par une exécution à blanc |
|---|---|
| 0 | Aucune paire acceptable n'a été trouvée, aucun document n'est chargé, ou un seuil ou une option n'est pas valide |
Remarques
Le plus petit numéro d'objet et la plus petite génération de chaque groupe accepté deviennent l'image canonique
/Length, /Filter et /DecodeParms décrivent le stockage encodé et peuvent différer, tandis que les dimensions, l’espace colorimétrique, la profondeur en bits, les masques, tableaux de décodage, interpolation, contenu facultatif, métadonnées et autres entrées sémantiques doivent correspondre
Les images qui ne peuvent pas être décodées sont ignorées et comptées dans DecodeFailures
Le hachage est divisé en huit bandes indexées, ce qui borne la recherche de candidats dans la plage de distance prise en charge avant la comparaison des échantillons décodés
Cette opération visuelle est volontairement approximative car elle échantillonne une grille fixe 64 × 64 ; les différences plus petites peuvent être manquées même avec tous les seuils à zéro
Utilisez DeduplicateResources lorsqu’une preuve exacte au niveau des octets est requise, et effectuez une simulation avec GetSimilarImageDeduplicationReportJSON avant de choisir les seuils d’un contenu inconnu
Exemple
var
Stats: TPDFlibImageSimilarityDedupStats;
Merged: Integer;
begin
Merged:= PDF.DeduplicateSimilarImages(2, 3, 12,
PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
Voir aussi
GetSimilarImageDeduplicationReportJSON, TPDFlibImageSimilarityDedupStats, DeduplicateResources