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
| MaxHashDistance | Distância Hamming máxima de 0 a 7 entre as duas dispersões diferenciais de 64 bits |
|---|---|
| MaxMeanError | Diferença absoluta média máxima dos canais, de 0 a 255, nas amostras descodificadas |
| MaxChannelError | Diferença absoluta máxima de 0 a 255 para qualquer canal de cor amostrado |
| Options | PDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, ambos os sinalizadores ou 0 |
| Stats | Recebe contadores de descodificação, candidatos, comparação, erros aceites, referências, conteúdo e recolha de objetos |
Valores devolvidos
| Positive value | O número de objetos de imagem semelhantes consolidados ou comunicados por uma simulação |
|---|---|
| 0 | Nã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