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

MaxHashDistanceDistancia de Hamming máxima de 0 a 7 entre los dos hashes de diferencia de 64 bits
MaxMeanErrorDiferencia media absoluta máxima por canal, de 0 a 255, entre las muestras descodificadas
MaxChannelErrorDiferencia absoluta máxima de 0 a 255 para cualquier canal de color muestreado
OptionsPDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, ambas marcas o 0
StatsRecibe contadores de descodificación, candidatos, comparación, errores aceptados, referencias, carga útil y recopilación de objetos

Valores devueltos

Positive valueEl número de objetos de imagen similares consolidados o indicados por una ejecución de prueba
0No 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