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.

Esta página existe graças aos esforços das seguintes pessoas:

Timur

Timur

Julia Gomes

Criado: 2021-07-03 23:59:09, Ultima atualização: 2021-07-03 23:59:09

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.

PLANETCALC, Imagem colorida para imagem em preto e branco

Imagem colorida para imagem em preto e branco

Limiar: 127
Imagem fonte
  • Arraste para cá os arquivos
Imagem fonte
 
Imagem em preto e branco
 

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.

  1. 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
     Y = 0.2126R + 0.7152G + 0.0722B

  2. 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:

{\displaystyle {\begin{bmatrix}&&*&{\frac {\displaystyle 7}{\displaystyle 16}}&\ldots \\\ldots &{\frac {\displaystyle 3}{\displaystyle 16}}&{\frac {\displaystyle 5}{\displaystyle 16}}&{\frac {\displaystyle 1}{\displaystyle 16}}&\ldots \\\end{bmatrix}}}

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

{\begin{bmatrix}&&&*&{\frac {7}{48}}&{\frac {5}{48}}&\ldots \\ \ldots &{\frac {3}{48}}&{\frac {5}{48}}&{\frac {7}{48}}&{\frac {5}{48}}&{\frac {3}{48}}&\ldots\\ \ldots &{\frac {1}{48}}&{\frac {3}{48}}&{\frac {5}{48}}&{\frac {3}{48}}&{\frac {1}{48}}&\ldots \\\end{bmatrix}}

Stucki dithering

{\begin{bmatrix}&&&*&{\frac {8}{42}}&{\frac {4}{42}}&\ldots \\ \ldots &{\frac {2}{42}}&{\frac {4}{42}}&{\frac {8}{42}}&{\frac {4}{42}}&{\frac {2}{42}}&\ldots\\ \ldots &{\frac {1}{42}}&{\frac {2}{42}}&{\frac {4}{42}}&{\frac {2}{42}}&{\frac {1}{42}}&\ldots \\\end{bmatrix}}


  1. 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). 

URL copiado para a área de transferência
PLANETCALC, Imagem colorida para imagem em preto e branco

Comentários