Imagem colorida para imagem em preto e branco
Esta calculadora online converte imagens coloridas em imagens em preto e branco. Duas opções são possíveis: limiar de luminosidade ou Floyd–Steinberg dithering.
Este conteúdo é licenciado de acordo com a Licença Creative Commons de Atribuição/CompartilhaIgual 3.0 (Unported). Isso significa que você pode redistribuir ou modificar livremente este conteúdo sob as mesmas condições de licença e precisa atribuir ao autor original colocando um hyperlink para este trabalho no seu site. Além disto, favor não modificar qualquer referência ao trabalho original (caso houver) que estiverem contidas neste conteúdo.
A calculadora a seguir converte a imagem colorida carregada em uma imagem em preto e branco. Não é uma imagem em tons de cinza como em Conversão de Cor para Escala Cinza, mas uma imagem que consiste apenas de pontos pretos e brancos. Quatro métodos de conversão são suportados - usando um valor de limiar de luminância (que pode ser alterado), Floyd-Steinberg dithering, Jarvis dithering, e Stucki dithering. Você pode ler mais sobre os algoritmos da calculadora abaixo.
Conversão de imagem colorida em imagem preto e branco
Usando um limiar de luminosidade
O algoritmo para este método de criação de uma imagem em preto e branco é bastante simples.
-
Calcule a luminosidade (brilho) de um pixel. A calculadora usa os coeficientes padrão (novamente, consulte Conversão de Cor para Escala Cinza) e o valor da luminosidade é calculado como
- Se o valor calculado for superior ao limiar, substitua a cor do pixel original por branco. Se for menor ou igual, substitua a cor original do pixel por preto.
Por padrão, a calculadora utiliza o valor de 127 como limite, no meio do intervalo [0 ... 255].
Floyd–Steinberg dithering
Usar apenas o valor de limite resulta em transições muito nítidas entre preto e branco, especialmente em bordas suaves. Para solucionar esse problema, em 1976, Floyd e Steinberg propuseram um algoritmo de dithering baseado na difusão do erro de quantização da imagem. 1 A ideia do algoritmo é calcular o erro de quantização (erro de arredondamento) e "retornar" parte dele à imagem original, distribuindo-o entre pixels vizinhos que ainda serão processados.
No algoritmo Floyd–Steinberg, o erro entre pixels adjacentes é distribuído da forma a seguir:
Como você pode ver, esta distribuição permite que você processe a imagem em uma única passagem - da esquerda para a direita, de cima para baixo.
O pseudo-código do algoritmo da Wikipédia:
para cada y, de cima para baixo, faça
para cada x da esquerda para a direita faça
pixel antigo := pixel[x][y]
pixel novo := encontrar_paleta_de_cor_mais_próxima(pixel antigo)
pixel[x][y] := pixel novo
quant_error := pixel antigo - pixel novo
pixel[x + 1][y ] := pixel[x + 1][y ] + quant_error × 7 / 16
pixel[x - 1][y + 1] := pixel[x - 1][y + 1] + quant_error × 3 / 16
pixel[x ][y + 1] := pixel[x ][y + 1] + quant_error × 5 / 16
pixel[x + 1][y + 1] := pixel[x + 1][y + 1] + quant_error × 1 / 16
Existem outros métodos de dithering: Jarvis dithering, Stucki dithering, Burkes dithering, Sierra dithering, mas eles se diferem majoritariamente no esquema de difusão de erro. Eu incluí alguns deles. Se você quiser algum outro, deixe-me saber nos comentários.
Jarvis dithering
Stucki dithering
-
R.W. Floyd, L. Steinberg, An adaptive algorithm for spatial grey scale (Um algoritmo adaptativo para escala cinza espacial). Proceedings of the Society of Information Display 17, 75–77 (1976). ↩
Comentários