1. Mudando o modo de cor
Uma imagem pode ser representada em diferentes modos de cor, como:
- RGB: Modo padrão de cores.
- L: Tons de cinza.
- CMYK: Usado na impressão.
- RGBA: RGB com canal alfa (para transparência).
Você pode converter uma imagem para outro modo de cor usando o método convert()
.
Convertendo para tons de cinza
Para deixar uma imagem em preto e branco, use o modo de cor L
:
# Convertendo para tons de cinza
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")
Esse código transforma a imagem em preto e branco e a salva no arquivo gray_example.jpg
. Isso é útil se você quiser criar um estilo monocromático ou preparar a imagem para análise, onde apenas os níveis de brilho importam.
Convertendo para o modo CMYK
O CMYK é frequentemente usado em impressão. Converter uma imagem para esse modo pode ser útil se a imagem for destinada à impressão.
# Convertendo para CMYK
cmyk_image = image.convert("CMYK")
cmyk_image.save("cmyk_example.jpg")
2. Aplicando filtros na imagem
Pillow fornece vários filtros embutidos que você pode usar para criar diferentes efeitos. Esses filtros estão no módulo ImageFilter
.
Aplicando filtros de desfoque, contorno e nitidez
from PIL import ImageFilter
# Aplicando o filtro de desfoque
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.save("blurred_example.jpg")
# Aplicando o filtro de contornos
contour_image = image.filter(ImageFilter.CONTOUR)
contour_image.save("contour_example.jpg")
# Aplicando o filtro de nitidez
sharpened_image = image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_example.jpg")
Aqui aplicamos três filtros diferentes:
- BLUR: Desfoque da imagem, útil para criar efeitos suaves.
- CONTOUR: Destaque dos contornos dos objetos na imagem.
- SHARPEN: Aumento da nitidez, tornando a imagem mais clara.
Outros filtros
Alguns outros filtros úteis no Pillow:
- DETAIL: Realça os detalhes.
- EDGE_ENHANCE: Realça as bordas.
- SMOOTH: Suaviza a imagem.
# Aplicando o filtro para realçar bordas
edge_image = image.filter(ImageFilter.EDGE_ENHANCE)
edge_image.save("edge_enhance_example.jpg")
3. Ajustando brilho, contraste, nitidez e saturação
O pacote ImageEnhance
do Pillow permite alterar facilmente o brilho, contraste, nitidez e saturação da imagem.
Ajustando o brilho
Para ajustar o brilho, use a classe ImageEnhance.Brightness
. O coeficiente de brilho pode ser qualquer número: 1.0
— brilho original, menor que 1.0
— escurecimento, maior que 1.0
— aumento do brilho.
from PIL import ImageEnhance
# Alterando o brilho
enhancer = ImageEnhance.Brightness(image)
brighter_image = enhancer.enhance(1.5) # Aumenta o brilho em 50%
brighter_image.save("brighter_example.jpg")
Ajustando o contraste
O contraste torna áreas claras mais claras e escuras mais escuras. Para ajustar o contraste, use ImageEnhance.Contrast
.
# Alterando o contraste
enhancer = ImageEnhance.Contrast(image)
higher_contrast_image = enhancer.enhance(1.5) # Aumenta o contraste em 50%
higher_contrast_image.save("higher_contrast_example.jpg")
Ajustando a nitidez
A nitidez define o quão claros serão os contornos dos objetos na imagem. Para ajustar a nitidez, use ImageEnhance.Sharpness
.
# Alterando a nitidez
enhancer = ImageEnhance.Sharpness(image)
sharper_image = enhancer.enhance(2.0) # Aumenta a nitidez em 2 vezes
sharper_image.save("sharper_example.jpg")
O valor 1.0
mantém a nitidez original, menor que 1.0
deixa a imagem mais desfocada, e maior que 1.0
— mais nítida.
Ajustando a saturação
A saturação faz com que as cores fiquem mais ou menos intensas. Para alterar a saturação, use ImageEnhance.Color
.
# Alterando a saturação
enhancer = ImageEnhance.Color(image)
more_vibrant_image = enhancer.enhance(1.5) # Aumenta a saturação em 50%
more_vibrant_image.save("more_vibrant_example.jpg")
4. Comparação de métodos de correção de imagem
Método | Descrição | Aplicação |
---|---|---|
convert("L") |
Converte a imagem para o modo preto e branco | Estilo P&B, análise de tons |
ImageFilter |
Aplica filtros para desfoque, nitidez, etc. | Efeitos visuais, destaque de objetos |
ImageEnhance.Brightness |
Ajuda a ajustar o brilho da imagem | Clarear ou escurecer |
ImageEnhance.Contrast |
Altera o contraste | Melhora a visibilidade de detalhes |
ImageEnhance.Sharpness |
Ajuda a ajustar a nitidez | Destaque de bordas, aumento da claridade |
ImageEnhance.Color |
Altera a saturação de cores | Imagens vibrantes e intensas |
5. Exemplos
Exemplo de processamento completo de imagem
Vamos juntar tudo o que vimos e criar um código que realiza várias etapas de correção de cor, aplicando filtros, ajustando brilho, contraste e saturação.
from PIL import Image, ImageEnhance, ImageFilter
# Abrindo a imagem
image = Image.open("example.jpg")
# Convertendo para preto e branco
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")
# Aplicando o filtro de nitidez
sharpened_image = gray_image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_gray_example.jpg")
# Aumentando o brilho
enhancer = ImageEnhance.Brightness(sharpened_image)
brighter_image = enhancer.enhance(1.3) # 30% mais brilho
brighter_image.save("brighter_gray_example.jpg")
# Aumentando o contraste
enhancer = ImageEnhance.Contrast(brighter_image)
higher_contrast_image = enhancer.enhance(1.5) # 50% mais contraste
higher_contrast_image.save("final_example.jpg")
Aplicações práticas de correção de cor
- Edição de fotos: Ajustar brilho e contraste pode melhorar os detalhes visíveis em uma foto, enquanto filtros podem torná-la mais expressiva.
- Preparação de imagens para análise: Converter para preto e branco, aumentar nitidez e contraste pode tornar a imagem mais nítida e adequada para análise.
- Estilização de imagens: Alterar saturação e aplicar filtros permite criar estilos únicos e efeitos para projetos de design.
GO TO FULL VERSION