Qual é o raio ideal da distribuição gaussiana para determinar a cor dos pixels?

10

Usando uma distribuição gaussiana de pontos em um plano de imagem para calcular um valor de pixel, qual raio / desvio padrão fornecerá mais informações na imagem final? Um raio muito grande fornece uma imagem borrada e um raio muito pequeno negligencia informações menores que um pixel para que não contribuam para a imagem final. Onde está o compromisso ideal? Existe uma resposta única para esta pergunta ou existem circunstâncias em que ela pode variar?

Estou pensando nisso em relação ao raytracing, mas imagino que se aplique igualmente a coisas como reduzir o tamanho de uma imagem. Onde as respostas diferem, estou interessado no que se aplica ao amostrar um plano de imagem contínuo, para que as posições dos pixels em uma imagem maior não possam ser usadas para determinar um raio ideal.

Trichoplax
fonte

Respostas:

7

Não tenho certeza de que haja um raio realmente ideal - será uma questão subjetiva com base na aparência da imagem. Como você diz, um raio muito grande resulta em desfoque e um raio muito pequeno resulta em alias.

Eu gosto de definir sigma = 0,5 px, de modo que o raio geral seja de cerca de 1,5 px (já que o gaussiano tem a maior parte de seu peso dentro de ± 3 sigma de sua média). Na minha experiência, isso oferece uma boa troca entre desfoque e alias, mas esse é apenas o meu gosto, não com base em considerações objetivas.

A propósito, como parte de uma postagem de blog sobre antialiasing que escrevi no ano passado (que foi baseada em uma resposta que eu publiquei na encarnação anterior deste site!), Testei uma variedade de kernels antialiasing contra uma imagem de teste sintética e saí com 0,5 px Gaussiano como meu favorito subjetivo.

Nathan Reed
fonte
Lembro-me da resposta da última vez :) (eu era gitubphagocyte naquela época). Interessante vê-lo expandido em uma postagem no blog.
Trichoplax
4

Imagine que alguém está fazendo uma imagem de um piso plano com um padrão uniforme de xadrez preto e branco que se estende até o horizonte; as damas são grandes o suficiente para serem claramente visíveis em pontos próximos à câmera, mas não grandes o suficiente para serem distinguíveis perto do horizonte.

Perto do horizonte, o piso deve aparecer simplesmente como cinza uniforme. Perto da câmera, as damas devem aparecer distintas. Entre a câmera e o horizonte, a aparência do chão deve, de alguma forma, transitar entre esses dois extremos.

Se a cena for renderizada como um filtro espacial que possui um corte muito ovino, haverá uma certa distância em que o piso passa de xadrez para cinza. Se alguém usar um filtro mais raso, a transição será muito mais gradual, mas as coisas próximas à distância de "corte" original serão menos nítidas do que teriam sido de outra forma.

Se alguém adicionasse uma "parede" ou cortasse a cena para ocultar as partes distantes do piso, de modo que não houvesse nenhuma parte do piso quadriculado embaçada em cinza, os melhores resultados seriam obtidos com o uso da inclinação mais íngreme filtro, produzindo a imagem mais nítida. O uso de um filtro mais raso diminuiria a nitidez da imagem com o objetivo de impedir uma transição desagradável que não seria visível de qualquer maneira.

Descobrir que tipo de filtragem usar, portanto, exige que se saiba algo sobre o conteúdo da frequência espacial da informação a ser exibida. Se a imagem não contiver nada de interesse que se aproxime de Nyquist, o uso de um filtro íngreme produzirá os resultados mais nítidos. Se, no entanto, o conteúdo da imagem exceder o Nyquist, o uso de um filtro gradual evitará "transições" feias. Nenhuma abordagem única será ideal para todos os casos.

supercat
fonte
2

Na minha opinião e experiência, acho que não existe uma resposta unívoca ... já que basicamente na literatura você também pode encontrar facilmente exemplos de filtros adaptativos (ou seja, de tamanho variável).

Eu acho que a resposta real deve estar relacionada ao contexto dos aplicativos (ou seja, hardware ou software, em tempo real ou não) e ao tipo de cena que você vai sintetizar (algumas cenas geralmente envolvem diferentes tipos de alias quando são sintetizadas (eu uso este termo geral de propósito)). Basicamente, computação gráfica é o estudo de algoritmos e estrutura de dados para síntese de imagens, e essa definição não está estritamente relacionada a nenhum tipo de aplicação.

Obviamente, um fator importante é mesmo a meta a ser alcançada por um processo de filtragem (ou seja, não é necessário que um desfoque excessivo possa ser ruim ...).

Se você está falando de "bom ver", acho que poderia concordar comigo quando digo que não há uma medida específica de "imagem agradável".

user8469759
fonte