Melhor redimensionamento de imagens

Em uma postagem anterior, eu examinei a diferença entre as técnicas de redimensionamento de imagem bilinear e bicúbica. Essas são as duas opções disponíveis na maioria dos programas gráficos para redimensionar uma imagem.

opções de redimensionamento de imagens

Depois de algumas experiências, cheguei a estas regras básicas:

  • Ao criar uma imagem menor, use bicúbico, que tem um afiação O senhor deseja enfatizar os dados que permanecem na nova imagem menor depois de descartar todos os detalhes extras da imagem original. O senhor deseja enfatizar os dados que permanecem na imagem nova e menor depois de descartar todos os detalhes extras da imagem original.
  • Ao criar uma imagem maior, use bilinear, que tem um suavização efeito. O senhor deseja mesclar os detalhes falsos interpolados na imagem nova e maior que nunca existiu na imagem original.

É claro que há muitas condições que podem fazer com que o senhor escolha um método em vez do outro, mas acho que essas são diretrizes razoáveis para começar.

O que eu não tinha percebido quando escrevi o artigo original é que existem outros algoritmos de redimensionamento mais avançados disponíveis. Alguns são específicos para determinados tipos de imagens, como o 2xSAI que funciona com arte em pixels. Compare esta foto do Mario vs. Wario usando redimensionamento de pixelse a mesma foto usando o redimensionamento 2xSAI. É uma diferença significativa, especialmente porque os métodos tradicionais de redimensionamento bilinear e bicúbico degeneram em um borrão gigante na arte de pixel.

Supostamente, um dos melhores algoritmos de redimensionamento de imagens do mercado é o Fractais genuínos. O site se gaba de que o senhor pode usar seus algoritmo de redimensionamento baseado em fractal para “amplie suas imagens em mais de 1000% sem perda de qualidade de imagem”. Provavelmente é pura hipérbole de marketing, mas ainda assim fiquei intrigado. Bilinear e Bicubic são decentes, mas deve haver espaço para melhorias em algum lugar. Baixei uma versão de teste da ferramenta (que requer o Photoshop Elements ou o Photoshop CS) e experimentei.

Peguei o a imagem de referência da Lena e a ampliamos em 500%.

Aqui está um close-up dos resultados usando Bicúbico mais nítido:

Lena 512 imagem de referência colorida, bicúbica nítida 5x redimensionada

Aqui está o mesmo close-up usando Fractais genuínos:

Lena 512 imagem de referência colorida, fractal 5x redimensionada

Normalmente, a Bicúbica não seria minha escolha aqui, mas eu a escolhi porque é tecnicamente o método mais avançado e produz os resultados mais próximos do efeito que o redimensionamento fractal proporciona. Ainda assim, o algoritmo fractal sai muito à frente; o senhor não consegue ver nenhum artefato de redimensionamento de pixels na imagem ampliada, e as bordas são nítidas e bem definidas. Ele começa a ter uma infeliz semelhança com um filtro de desenho em aquarela, mas o redimensionamento arbitrário de imagens para 5 vezes o tamanho original sempre envolverá algum tipo de compensação.

Bicúbico e bilinear são algoritmos de redimensionamento de imagens bem conhecidos e são “bons o suficiente” para a maioria das tarefas de redimensionamento de imagens. É por isso que eles são fornecidos prontos para uso em quase todos os aplicativos gráficos e bibliotecas de gráficos. Há um excelente artigo no CodeProject que se aprofunda em algoritmos avançados de redimensionamento de imagens com código C# real para alguns algoritmos de redimensionamento spline e fractal. Mas antes de começar a redimensionar imagens, considere se o senhor precisa esses algoritmos avançados.

Redução de imagens é uma operação completamente segura e racional. O senhor está simplesmente reduzindo a precisão e a resolução ao descartar informações. Torne a imagem tão pequena quanto desejar e terá fidelidade total, dentro dos limites do número de pixels permitidos. O senhor obterá bons resultados, independentemente do algoritmo que escolher. (Bem, a menos que o senhor escolha os algoritmos ingênuos Pixel Resize ou Nearest Neighbor).

Ampliação de imagens é arriscado. Além de um certo ponto, a ampliação de imagens é uma tarefa tola; o senhor não pode sintetizar magicamente um número infinito de novos pixels a partir do nada. E os pixels interpolados nunca são tão bons quanto os pixels reais. É por isso que é mais do que um pouco artificial aumentar a imagem de 512×512 de Lena em 500%. Seria mais inteligente encontrar uma digitalização ou imagem de maior resolução do que o senhor precisa* do que aumentá-la no software.

Mas quando o senhor não pode evitar a ampliação de uma imagemé quando vale a pena conhecer as vantagens e desvantagens dos algoritmos de redimensionamento bicúbico, bilinear e mais avançados. Pelo menos, tenha conhecimento suficiente para escolher a melhor das opções ruins que o senhor tem.

* Por exemplo, se eu realmente precisasse da imagem da Lena tão grande, seria melhor procurar cópias antigas da Playboy e digitalizá-las eu mesmo. Ou pelo menos é o que digo à minha esposa…