Processamento de Imagens em Python com Pillow: Guia Completo

A biblioteca Python Imaging Library Pillow é ideal para processamento de imagens. Tipicamente, é usada para aplicações de arquivamento e processamento em lote. Claro, você é livre para usá-la para qualquer outra coisa que possa imaginar. Você pode usar a biblioteca para:
- Criar miniaturas (thumbnails)
- Converter entre formatos de arquivo
- Imprimir imagens
- Obter histograma (ideal para realce automático de contraste)
- Rotacionar imagens
- Aplicar filtros como blur
Instalando o pacote de processamento de imagens
Para instalar o Pillow, que é um fork e continuação da Python Imaging Library original, use o comando pip install:
pip3 install Pillow
Processando imagens
O Pillow oferece vários filtros que ficam disponíveis após importar ImageFilter. Por exemplo, para desfocar uma imagem, use:
from PIL import Image, ImageFilter
im = Image.open("kittens.jpg")
blurred = im.filter(ImageFilter.BLUR)
Outros filtros incluem SHARPEN, SMOOTH e EDGE_ENHANCE. Para uma lista completa de filtros, verifique a documentação de referência do ImageFilter.
Para rotacionar uma imagem em 180 graus:
rotated_image = im.rotate(180)
E finalmente, para salvar os resultados do seu trabalho:
rotated_image.save("rotated.jpg")
Exibindo imagens
Além do processamento de imagens, esta biblioteca também pode ser usada para exibir imagens na tela. Aqui está um código de exemplo para exibir um arquivo chamado kittens.jpg:
from PIL import Image
im = Image.open("kittens.jpg")
im.show()
print(im.format, im.size, im.mode)
# JPEG (1920, 1357) RGB
No GIF animado a seguir, demonstrarei como usar o Pillow diretamente do IPython:

Leitura adicional
A biblioteca tem muito mais a oferecer. Para aprender tudo sobre processamento de imagens em Python usando Pillow, o melhor é acessar o tutorial oficial!
python
- Construa um Robô com Raspberry Pi e Python: Guia Completo
- Função Print() do Python: Guia Prático com Exemplos
- Dominando o Método strip() do Python: Guia Completo e Exemplos Práticos
- Domine o str.count() do Python: Como Contar Caracteres e Substrings com Exemplos
- Domine Strings format() em Python com Exemplos Claros
- Domine o Método String.find() do Python: Sintaxe, Exemplos e Alternativas
- Dominando Funções Lambda em Python: Exemplos Práticos e Boas Práticas
- Função round() em Python Explicada com Exemplos Práticos
- Dominando a Função map() do Python: Sintaxe, Exemplos e Boas Práticas
- Python timeit(): Medindo Tempo de Execução com Exemplos Práticos