Ao reduzir a amostragem de uma imagem por um fator inteiro , o método óbvio é definir os pixels da imagem de saída para a média dos blocos correspondentes na imagem de entrada.
Lembro-me vagamente de ter lido em algum lugar que esse método não é o ideal (desculpe, não me lembro de nenhum detalhe)
É verdade que existe um método melhor (e, em caso afirmativo, onde o método acima falha, embora pareça "obviamente" correto)? Eu não sei muito sobre processamento de sinais, esta questão me interessa.
image-processing
sampling
Styg Oldenbaum
fonte
fonte
Respostas:
Reduzir a amostragem de uma imagem reduz o número de amostras que podem representar o sinal. Em termos de domínio da frequência, quando um sinal é reduzido por amostragem, a porção de alta frequência do sinal será alterada com a porção de baixa frequência. Quando aplicado ao processamento de imagens, o resultado desejado é preservar apenas a parte de baixa frequência. Para fazer isso, a imagem original precisa ser pré-processada (filtrada por alias) para remover a parte de alta frequência para que o aliasing não ocorra.
O filtro digital ideal para remover a parte de alta frequência (com o corte mais nítido) é uma função sinc . O motivo é que a representação no domínio da frequência da função Sinc é quase 1 constante em toda a região de baixa frequência e quase constante 0 em toda a região de alta frequência.
A resposta ao impulso do filtro sinc é infinita. O filtro Lanczos é um filtro sinc modificado que atenua os coeficientes sinc e os trunca quando os valores caem para insignificância.
No entanto, ser ótimo no domínio da frequência não implica ser ótimo aos olhos humanos. Existem métodos de upsampling e downsampling que não obedecem às transformações lineares, mas produzem melhores resultados que os lineares.
No que diz respeito à afirmação sobre , é importante ter em mente que, durante a amostragem de imagens, a escolha da correspondência de coordenadas entre o sinal de alta resolução e o sinal de baixa resolução não é arbitrária, nem é suficiente para alinhar na mesma origem (0) na linha numérica real ou discreta.n × n
O requisito mínimo na correspondência de coordenadas é que
fonte
Você está certo de que a média da área está bem próxima do "mais correto" que você pode obter, mas o problema é um comportamento inconsistente ao reduzir uma linha N-largura acentuada por um fator de N. Se o local da linha estiver no módulo alinhado N, você obterá uma linha nítida de 1 pixel, mas se for aproximadamente N / 2 mod N, obterá uma linha muito desfocada (2 pixels de largura e meia intensidade). Isso pode parecer muito ruim e, com a gama não linear, resultará em diferenças de intensidade. (Idealmente, toda a reamostragem deve ocorrer com gama corrigida para uma escala de intensidade linear, mas na prática quase ninguém faz isso porque é muito caro.)
Se você quiser melhorar isso, primeiro aceite o fato de que é impossível reduzir a desfocagem em alguns casos; portanto, a única maneira de obter uma saída uniforme envolve aumentar a desfocagem. A maneira ideal é usar um kernel gaussiano com raio maior que N / 2, em vez de uma função step, como a função de convolução com a imagem de origem. Uma maneira barata de abordar uma aproximação, no entanto, se você já possui a implementação da média da área N por N, é apenas aplicar uma convolução de desfoque (1 / 4,1 / 2,1 / 4) na redução da amostra resultante imagem.
fonte