Você precisa usar um filtro passa-baixo antes de reduzir o tamanho de uma imagem?


8

Aparentemente, a interpolação de pixel bicúbico é boa para aumentar ou diminuir a imagem (em tempo real ou não).

É recomendável usar um filtro passa-baixo antes de reduzir o tamanho ou a amostragem bicúbica lida com problemas de aliasing?


11
Estou um pouco confuso com sua premissa ... como um filtro passa-baixo qualitativamente é diferente de reduzir a amostragem? Quero dizer, eu entendo que os algoritmos são diferentes e todos, mas ambos coletam amostras de pixels vizinhos e suprimem as altas frequências. A grande diferença é a resolução da imagem resultante, caso contrário, as duas operações são isomórficas. Parece que a aplicação de ambos é redundante.
Jorge Rodriguez

Bem, aqui está o que me confunde. Eu sei que você não pode simplesmente reduzir a amostra de uma imagem sem obter o alias. A interpolação bicúbica de pixels ao aumentar uma imagem funciona muito bem e fica bonita. Fazer o mesmo ao tornar uma imagem menor SEEMS para funcionar decentemente, mas eu não tinha certeza se o resultado provavelmente teria muitos aliases como resultado. Eu queria saber se tecnicamente você precisaria fazer algum tipo de filtro passa-baixo na imagem antes de fazer a amostragem bicúbica, ou se a amostragem bicúbica era boa o suficiente na prática? Eu podia ver que ele é um filtro de baixa frequência por si só, talvez.
Alan Wolfe

11
O artigo de Mitchell-Netravali que mencionei na outra pergunta aborda essa idéia especificamente - ele generalizou cúbicos e depois encontrou os parâmetros que menos se referem. Isso não significa que eles não tenham um alias, mas talvez o direcione para qual cúbico usar para minimizar o alias.
Jorge Rodriguez

Respostas:


7

Se o passo de redução da amostra for projetado adequadamente, ele efetivamente executará a filtragem de passa-baixo como parte da amostragem reduzida. Não há necessidade de uma operação de filtro passa-baixas separada.

Essencialmente, quando você reduz a amostra, está executando um filtro sobre os pixels da imagem de origem (alta resolução), mas avaliando-o apenas nos locais dos pixels de destino (baixa resolução). O espaço ocupado por esse filtro precisa ter aproximadamente o espaçamento entre os pixels de destino, para evitar a perda de informações saltando sobre os pixels de origem intermediários. Mas isso significa que a área de cobertura do filtro terá vários pixels de origem e, portanto, passará efetivamente para baixo na fonte.

Por exemplo, suponhamos que você reduza a amostra de uma imagem exatamente 10 vezes em cada eixo. Com um filtro de caixa (por exemplo), você definiria cada pixel de destino como a média de uma caixa de 10x10 de pixels de origem. Isso eliminaria todos os recursos menores que 10 px, por isso é efetivamente um filtro passa-baixo.

Você menciona interpolação bicúbica; temos que fazer uma distinção entre filtragem e interpolação aqui. A interpolação é apropriada para aumentar a amostragem, não reduzir a amostragem. A interpolação bicúbica funciona ajustando um adesivo estriado bicúbico a uma vizinhança 4x4 de pixels e, em seguida, avaliando o adesivo em pontos interpolados. Embora possa funcionar bem o suficiente para reduzir a amostragem de imagens por um pequeno fator (até 2x mais ou menos), ele falhará se você for muito além disso. Por exemplo, se a amostragem for reduzida em 10x, como no exemplo anterior, você poderá ver que o bicúbico perderá a maioria dos pixels de origem e o resultado poderá ser um alias.

Por outro lado, a filtragem bicúbica é apenas uma filtragem padrão, usando um núcleo que é uma função bicúbica (em oposição a uma caixa, triângulo, Gaussiano, Lanczos, etc.). O kernel Mitchell-Netravali é o exemplo clássico desse tipo. Se usado para reduzir a amostragem, o kernel deve ser dimensionado adequadamente para o espaçamento de pixels de destino, conforme discutido anteriormente, e você somaria todos os pixels no espaço ocupado, não apenas um 4x4 ou outro bairro de tamanho fixo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.