⚠️ Este é um site de tradução não oficial, sem relação com a ImageMagick Studio LLC. Para informações oficiais, consulte a página original (https://imagemagick.org/color-thresholding/).

Limiarização de cor

Use a limiarização de cor para especificar uma faixa de cores e obter uma imagem em preto e branco. Todas as cores entre a cor inicial e a cor final (inclusive) tornam-se brancas e os demais pixels da imagem tornam-se pretos. As duas cores são separadas por um hífen. A limiarização ocorre, por padrão, no espaço de cor sRGB. Use o -colorspace para realizar a limiarização em espaços de cor alternativos (atualmente limitados a sRGB, Gray, HSV, HSL, HCL, HSB e HSW). As cores inicial e final podem ser especificadas em qualquer espaço de cor (reconhecido pelo ImageMagick), mas, em geral, recomendamos especificá-las no espaço de cor correspondente à opção -colorspace. Para o espaço de cor Gray, certifique-se de usar um valor inicial menor que o valor final. Observe que o matiz (Hue) é cíclico — 0 e 360 são o mesmo. No entanto, uma faixa de cores que atravessa o matiz = 0 ainda pode ser útil, se o valor de matiz inicial for maior que o valor de matiz final.

Recomenda-se cautela ao misturar o espaço de cor das cores inicial e final com o da imagem. Uma faixa ampla em um espaço de cor pode mapear para apenas uma faixa estreita em outro espaço de cor. Por exemplo, poder-se-ia ingenuamente pensar que sRGB(0,0,0) a sRGB(255,255,255) produziria uma imagem branca, capturando todas as cores, mesmo ao usar -colorspace HSV. Mas essas duas cores são preto e branco e, portanto, mapeiam apenas para uma faixa de tons de cinza, como hsv(0,0%,0%) e hsv(0,0%,100%). Para uma imagem colorida, você provavelmente não encontraria muitos pixels cinza.

Para ilustrar como a limiarização de cor funciona, use esta imagem:

convert input-image -colorspace XXX -color-threshold "start - stop" output-image

A seguir estão alguns exemplos típicos de uso:

[Color Thresholding]

Comece escolhendo uma cor sRGB (em algum ponto da imagem — neste caso, o amarelo das flores) e desloque-a para baixo e para cima para formar duas cores sRGB. Os valores menores formam a cor inicial e os valores maiores formam a cor final. Comece com sRGB(183,132,20). Desloque seus valores em +-20 para identificar a cor inicial (-) e a cor final (+); ou seja, R=183+-20, G=132+-20 e B=40+-20:

magick monet.jpg -color-threshold 'sRGB(163,112,0)-sRGB(203,152,40)' monet.gif

isso retorna o contorno das pétalas amarelas da flor:

[Color Thresholding]

Agora, escolha duas cores RGB: sRGB(159,150,0) e sRGB(205,100,45):

magick monet.jpg -color-threshold 'sRGB(159,150,0)-sRGB(205,100,45)' monet.gif



![\[Color Thresholding\]](https://imagemagick.org/image/color-thresholding-rgb.gif)




A seguir, selecione uma cor sRGB e converta-a para HSV e desloque seus valores para baixo e para cima para gerar as cores HSV inicial e final. Use -colorspace HSV para converter a imagem para HSV. Para nosso exemplo HSV, escolhemos sRGB(183,132,20) e convertemos para HSV:






magick xc:"srgb(183,132,20)" -colorspace HSV txt:
# ImageMagick pixel enumeration: 1,1,65535,hsv
0,0: (41.227,89.071%,71.7647%) #1D51E405B7B7 hsv(41.227,89.071%,71.7647%)

Agora, desloque seus valores HSV como H=41+-20, S=89+-10 e V=72+-10, para criar a cor inicial (-) e a cor final (+):

magick monet.jpg -colorspace HSV -color-threshold 'hsv(21,79%,62%)-hsv(61,99%,85%)' monet.gif

[Color Thresholding]

A seguir, escolha duas cores RGB. Use -colorspace HSV para converter a imagem para HSV e aplique as cores RGB inicial e final. Escolha sRGB(158,77,33) e sRGB(213,217,2):

magick monet.jpg -colorspace HSV -color-threshold "sRGB(158,77,33)-sRGB(213,217,2)" monet.gif

Aqui estão os resultados esperados:

[Color Thresholding]

A seguir, escolha duas cores sRGB e converta-as para cinza. Agora converta a imagem para cinza e use as cores de limiarização em cinza.

magick xc:"sRGB(159,150,0)" -colorspace gray txt:
# ImageMagick pixel enumeration: 1,1,65535,gray
0,0: (36259.1) #8DA38DA38DA3 gray(55.3278%)

magick xc:"sRGB(205,100,45)" -colorspace gray txt:
# ImageMagick pixel enumeration: 1,1,65535,gray
0,0: (30418.2) #76D276D276D2 gray(46.4152%)

Observe que a intensidade inicial deve ser menor que a intensidade final:

magick monet.jpg -colorspace gray -color-threshold 'gray(46.4152%)-gray(55.3278%)' monet.gif

Aqui estão os resultados da operação de limiarização de cor:

[Color Thresholding]