CodeGym /Curso Java /Python SELF PT /Trabalhando com cores e correção de imagens

Trabalhando com cores e correção de imagens

Python SELF PT
Nível 45 , Lição 4
Disponível

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.
1
Опрос
Trabalhando com imagens usando Pillow,  45 уровень,  4 лекция
недоступен
Trabalhando com imagens usando Pillow
Trabalhando com imagens usando Pillow
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION