DeduplicateSimilarImages
Tratamiento de imágenes, optimización
Descripción
Busca XObjects de imagen indirectos perceptivamente 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 después de excluir los campos del contenedor codificado y, a continuación, superar un umbral de hash de diferencia de 64 bits y una comparación de muestras de color descodificadas 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 | Diferencia media absoluta máxima por canal, de 0 a 255, entre las muestras descodificadas |
| 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 descodificación, candidatos, comparación, errores aceptados, referencias, carga útil y recopilación de objetos |
Valores devueltos
| Positive value | El número de objetos de imagen similares consolidados o indicados por una ejecución de prueba |
|---|---|
| 0 | No se encontró ningún par aceptable, no hay ningún documento cargado o un umbral u opción no son válidos |
Observaciones
El número de objeto y la generación más bajos de cada grupo aceptado se convierten 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, las matrices de descodificació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 se pueden descodificar se omiten y se contabilizan en DecodeFailures
El hash se divide en ocho bandas indexadas, lo que acota la búsqueda de candidatos para el intervalo de distancias admitido antes de comparar las muestras descodificadas
Esta operación visual es deliberadamente aproximada porque muestrea una cuadrícula fija de 64 × 64, por lo que pueden pasar desapercibidas diferencias menores que la cuadrícula de muestreo aunque todos los umbrales sean cero
Utilice DeduplicateResources cuando se requiera una prueba de igualdad exacta de bytes y haga una ejecución de prueba 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