DeduplicateSimilarImages

Processamento de imagens, otimização

Descrição

Encontra Image XObjects indiretos percetivamente semelhantes, redireciona as respetivas referências para uma imagem canónica determinística e remove opcionalmente os objetos duplicados

Os candidatos têm de possuir o mesmo dicionário semântico de imagem após a exclusão dos campos do contentor codificado e, em seguida, passar um limiar de hash de diferença de 64 bits e uma comparação de amostras de cor descodificadas de 64 × 64

Sintaxe

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

MaxHashDistanceDistância Hamming máxima de 0 a 7 entre as duas dispersões diferenciais de 64 bits
MaxMeanErrorDiferença absoluta média máxima dos canais, de 0 a 255, nas amostras descodificadas
MaxChannelErrorDiferença absoluta máxima de 0 a 255 para qualquer canal de cor amostrado
OptionsPDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, ambos os sinalizadores ou 0
StatsRecebe contadores de descodificação, candidatos, comparação, erros aceites, referências, conteúdo e recolha de objetos

Valores devolvidos

Positive valueO número de objetos de imagem semelhantes consolidados ou comunicados por uma simulação
0Não foi encontrado nenhum par aceitável, não está carregado nenhum documento, ou um limiar ou opção é inválido

Observações

O menor número de objeto e de geração de cada grupo aceite torna-se a imagem canónica

/Length, /Filter e /DecodeParms descrevem o armazenamento codificado e podem diferir, enquanto as dimensões, o espaço de cor, a profundidade de bits, as máscaras, as matrizes de descodificação, a interpolação, o conteúdo opcional, os metadados e outras entradas semânticas do dicionário têm de corresponder

As imagens que não podem ser descodificadas são ignoradas e contabilizadas em DecodeFailures

A dispersão é dividida em oito faixas indexadas, o que limita a pesquisa de candidatos para o intervalo de distâncias suportado antes de comparar as amostras descodificadas

Esta operação visual é intencionalmente aproximada porque utiliza uma grelha fixa de 64 × 64 amostras, pelo que diferenças menores do que a grelha de amostragem podem não ser detetadas, mesmo quando todos os limiares são zero

Utilize DeduplicateResources quando for necessária uma prova exata ao nível dos bytes e efetue uma simulação seguida de GetSimilarImageDeduplicationReportJSON antes de escolher limiares para conteúdo desconhecido

Exemplo

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

Consulte também

GetSimilarImageDeduplicationReportJSON, TPDFlibImageSimilarityDedupStats, DeduplicateResources