DeduplicateSimilarImages
Manejo de imágenes, optimización
Descripción
Encuentra XObjects de imagen indirectos perceptualmente similares, redirige sus referencias a una imagen canónica determinista y opcionalmente elimina los objetos duplicados
Los candidatos deben tener el mismo diccionario semántico de imagen tras excluir los campos del contenedor codificado, después superar un umbral de hash de diferencia de 64 bits y una comparación de muestras de color decodificadas de 64 × 64
Sintaxis
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer): Integer; Overload;
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer;
Out Stats: TPDFlibImageSimilarityDedupStats): Integer; Overload;
Parámetros
| MaxHashDistance | Distancia de Hamming máxima de 0 a 7 entre los dos hashes de diferencia de 64 bits |
|---|---|
| MaxMeanError | La diferencia máxima absoluta media por canal, de 0 a 255, en las muestras decodificadas |
| MaxChannelError | Diferencia absoluta máxima de 0 a 255 para cualquier canal de color muestreado |
| Options | PDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, ambas marcas o 0 |
| Stats | Recibe contadores de decodificación, candidatos, comparación, errores aceptados, referencias, cargas útiles y colecciones de objetos |
Valores devueltos
| Positive value | El número de objetos de imagen similares consolidados o informados por una ejecución de prueba |
|---|---|
| 0 | No se encontró un par aceptable, no hay ningún documento cargado o un umbral u opción no son válidos |
Observaciones
El menor número de objeto y generación de cada grupo aceptado se convierte en la imagen canónica
/Length, /Filter y /DecodeParms describen el almacenamiento codificado y pueden diferir, mientras que las dimensiones, el espacio de color, la profundidad de bits, las máscaras, los arreglos de decodificación, la interpolación, el contenido opcional, los metadatos y las demás entradas semánticas del diccionario deben coincidir
Las imágenes que no pueden decodificarse se omiten y se cuentan en DecodeFailures
El hash se divide en ocho bandas indexadas, lo que limita la búsqueda de candidatos para el intervalo de distancia admitido antes de comparar las muestras decodificadas
Esta es una operación visual deliberadamente aproximada porque toma una cuadrícula fija de 64 × 64, por lo que pueden omitirse diferencias menores que la cuadrícula de muestreo incluso cuando todos los umbrales son cero
Use DeduplicateResources cuando se requiera una prueba exacta por bytes y use una ejecución en seco junto con GetSimilarImageDeduplicationReportJSON antes de elegir umbrales para contenido desconocido
Ejemplo
var
Stats: TPDFlibImageSimilarityDedupStats;
Merged: Integer;
begin
Merged:= PDF.DeduplicateSimilarImages(2, 3, 12,
PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
Véase también
GetSimilarImageDeduplicationReportJSON, TPDFlibImageSimilarityDedupStats, DeduplicateResources