Analisar e Processar Imagens com Python

Neste artigo, vamos falar sobre como usar a biblioteca Pillow para analisar e processar imagens com base no seu conteúdo. A capacidade de analisar e processar imagens pode ser muito útil em várias aplicações, como detecção de objetos, rastreamento de movimento, reconhecimento de padrões e melhoria da qualidade de imagem.

Com o Pillow, podemos realizar várias operações para analisar e processar imagens. Abaixo estão alguns exemplos, ah! Coloque o código dentro de um bloco de código:

Redimensionar uma imagem

Neste código, algo muito útil é feito: uma imagem é redimensionada para um tamanho específico. Por que é importante redimensionar uma imagem? Bem, às vezes você precisa que uma imagem tenha um tamanho específico para se ajustar a um design ou para ser exibida corretamente em uma página da web. Ou talvez você precise reduzir o tamanho de uma imagem para ocupar menos espaço no disco rígido. Seja qual for o caso, redimensionar uma imagem é uma tarefa muito comum na edição de imagens.

Este código usa o PIL (Python Imaging Library) para abrir uma imagem em Python. A imagem original é especificada como ‘imagem.jpg’, mas você pode alterar este nome para que corresponda ao nome da imagem que deseja redimensionar. Depois de abrir a imagem original, uma variável chamada ‘size’ é criada contendo o tamanho desejado da imagem redimensionada. Neste caso, o tamanho é de 224 x 224 pixels. Você pode alterar este tamanho para qualquer outro tamanho que você precise para o seu projeto.

Depois que o tamanho desejado foi definido, o método ‘resize()’ da biblioteca PIL é usado para redimensionar a imagem original para esse tamanho. O resultado é armazenado na variável ‘imagem’. É importante observar que este método altera o tamanho da imagem original e cria uma nova imagem com o tamanho desejado.

Finalmente, a imagem redimensionada é salva usando o método ‘save()’ da biblioteca PIL. A imagem é salva com o nome ‘imagem_redimensionada.jpg’, mas você pode alterar este nome para qualquer outro nome que você deseje.

Este código é muito simples, mas é muito útil para a edição de imagens em Python. Se você precisar redimensionar imagens para um projeto, pode usar este código como ponto de partida e ajustá-lo às suas necessidades.

from PIL import Image 

# Abrir a imagem original
imagem = Image.open('imagem.jpg')

# Redimensionar a imagem para um tamanho específico
tamanho = (224, 224)
imagem = imagem.resize(tamanho)

# Salvar a imagem redimensionada
imagem.save('imagem_redimensionada.jpg')

Depois que redimensionarmos a imagem, podemos usar o Keras para detectar objetos. O Keras tem modelos pré-treinados para detecção de objetos, como o modelo YOLO. Para usar o modelo YOLO no Keras, podemos carregar o modelo pré-treinado e, em seguida, usar o método predict() para detectar objetos em uma imagem.

Contornos e formas

Os contornos são as linhas que delimitam a forma de um objeto em uma imagem. Para detectar contornos em uma imagem com o Pillow, podemos usar o método find_contours() da biblioteca scikit-image

O primeiro passo que temos que fazer é instalar as dependências, neste caso scikit-image e Pillow:

pip install scikit-image
pip install Pillow

E aqui está o código:

from PIL import Image, ImageDraw
from skimage import measure
import numpy as np

# Abrir a imagem
imagem = Image.open('imagem.jpg')

# Converter a imagem em escala de cinza
imagem_cinza = imagem.convert('L')

# Converter a imagem em uma matriz numpy
matriz_imagem = np.array(imagem_cinza)

# Detectar os contornos
contornos = measure.find_contours(matriz_imagem, 0.8)

# Desenhar os contornos na imagem original
desenhar = ImageDraw.Draw(imagem)
for contorno in contornos:
    for i in range(len(contorno) - 1):
        desenhar.line((contorno[i][1], contorno[i][0], contorno[i+1][1], contorno[i+1][0]), fill='red', width=2)

# Mostrar a imagem com os contornos
imagem.show()

Melhorando a qualidade da imagem

A qualidade de uma imagem pode ser melhorada de várias maneiras, como aumentando o contraste, a saturação e a nitidez. Para aumentar o contraste de uma imagem com o Pillow, podemos usar o método enhance().

from PIL import Image, ImageEnhance

# Abrir a imagem
imagem = Image.open('imagem.jpg')

# Aumentar o contraste
realçar = ImageEnhance.Contrast(imagem)
imagem = realçar.enhance(1.5)

# Mostrar a imagem com contraste aumentado
imagem.show()

Estes são apenas alguns exemplos de como usar o Pillow para analisar e processar imagens com base no seu conteúdo. O Pillow é uma biblioteca muito poderosa e versátil que nos permite realizar uma grande variedade de operações de processamento de imagens.

Deixe um comentário