-
Notifications
You must be signed in to change notification settings - Fork 0
Blur Gaussiano
O Blur Gaussiano é uma técnica usada para borrar uma imagem, sendo amplamente usada na indústria tecnológica no design de aplicativos modernos e em efeitos de imagens para diminuir o seu ruído, ou em nosso caso, para censurar uma imagem.
O nome deste efeito se chama Blur Gaussiano pois ele deriva de uma Função Gaussiana, aplicando tal função nos pixels das imagens, gerando um efeito borrado.
A função Gaussiana, de duas variáveis, é expressada por:
Sendo esta função caracterizada por determinar, como vemos na imagem abaixo, uma distribuição normal, amplamente usada em estatística.
Porém, para ser aplicada em uma imagem, ela é usada no processo que chamamos de Convolução, em que é um algoritmo que trata uma matriz usando como base um ponto central e modificando para que fique "parecido" aos valores ao redor deste ponto.
Quando aplicamos este filtro, observamos uma região de pixels que estão próximos do pixel que estamos modificando. Esta região chamamos de Kernel, sendo esta uma matriz LxC que representa a região de pixels.
Por isso, os valores de L e C devem ser positivos e ímpares, já que, se forem um número par, não haveria centro para calcular o pixel! Caso a matriz não seja quadrada, os pixels estariam distorcidos. Além disso, quanto maior for o tamanho desta matriz, maior será a intensidade o efeito e também terá um custo computacional maior.
Agora que usamos a equação Gaussiana para determinar os pesos de cada pixel dentro do Kernel, respeitando, assim, a distribuição Gaussiana, em que o pixel central possui o maior valor, reduzindo quando afastamos do centro (de forma similar ao gráfico mostrado anteriormente).Logo, por conta desta distribuição, a imagem ainda será reconhecível e estará borrada! Após isso o valor central é a média ponderada os pixels ao redor dele.
Aplicando a equação neste kernel com um sigma dado e que o maior valor seja o central, temos:
Agora que temos o kernel que irá percorrer cada pixel da imagem com o peso definido pela Equação Gaussiana, aplicamos para cada valor RGB do pixel (três valores de 0 ate 255 que determinam as três cores primárias: Vermelho, Verde e Azul) e multiplicamos pelo valor central do kernel.
Isto dará uma nova cor para cada pixel da imagem, como se esta cor fosse uma média das cores mais próximas a este ponto. Assim a imagem estará borrada como a animação mostra: