Search
Close this search box.
✂️ Redimensione e corte imagens em Python com OpenCV
corte imagens com Python

Posts Relacionados:

Domine a manipulação de imagens em Python! Neste post, abordaremos o redimensionamento e corte de imagens com o OpenCV, a super biblioteca de visão computacional.

Receba nossa newsletter

Redimensione e Corte Imagens com OpenCV

A manipulação de imagens em Python é uma habilidade útil e de simples implementação. Já abordamos esse tópico usando a excelente biblioteca Pillow. Neste post, exploraremos como redimensionar e cortar imagens com o OpenCV, a poderosa biblioteca de visão computacional. Assim, você aprende técnicas essenciais para aprimorar seus projetos de IA com códigos fáceis.

Redimensionamento de Fotos e Imagens com OpenCV

Esse post assume que você já possui OpenCV instalado (veja aqui ou aqui). A sintaxe para redimensionar imagens e fotos é bem simples:

				
					resize(src, dsize, fx, fy, interpolation)
				
			

Neste trecho, src representa a imagem de entrada necessária. O termo dsize é o tamanho desejado da imagem de saída, pode ser uma nova altura e largura. O parâmetro fx é o fator de escala ao longo do eixo horizontal. Já fy é o fator de escala ao longo do eixo vertical. O termo interpolation se refere ao método de interpolação. OpenCV possui vários métodos de interpolação para o redimensionamento de imagens.

Os parâmetros dsize, fx e fy não costumam ser usados todos juntos. Geralmente, usa-se dsize quando se deseja especificar diretamente o tamanho da nova imagem em píxeis. Já os parâmetros fx e fy são usados quando queremos fazer uma alteração em escala (por exemplo, reduzir ou aumentar uma imagem em 50%). Veja alguns exemplos a seguir. A imagem original que será transformada é mostrada abaixo.

Imagem Original
				
					import cv2

# redimensionamento de imagens em escala
img = cv2.imread('SUA IMAGEM AQUI') # insira a path para sua imagem, por exemplo: imagens/minha_img.png 
escala_x = 1.2 # aumenta largura em 20%
escala_y = 1.2 # aumenta altura em 20%
img_aumentada = cv2.resize(img, None, fx= escala_x, fy= escala_y, interpolation= cv2.INTER_LINEAR) # redimensiona imagem
cv2.imwrite("nome_da_sua_nova_imagem.jpg", img_aumentada) # salva nova imagem, escolha  formato desejado (ex: png, jpg, etc)
				
			

No exemplo acima, a imagem foi aumentada em 20% (imagem mostrada abaixo). Isso foi feito especificando escalas (fx e fy) para o redimensionamento.

Imagem Aumentada

Para especificar o redimensionamento usando valores de píxeis ao invés de uma escala, o código pode ser escrito assim:

				
					# redimensionamento de imagens usando tamanhos em píxeis
nova_largura = 300
nova_altura = 700
novo_tamanho = (nova_largura, nova_altura)

resized_img = cv2.resize(img, novo_tamanho, interpolation= cv2.INTER_LINEAR)
cv2.imwrite("minha_nova_imagem.jpg", resized_img) # salva nova imagem
				
			

Embora o uso explicito de píxeis ofereça mais controle, ele pode distorcer a imagem, como ocorreu nesse exemplo:

Imagem Reduzida

Verifique o Tamanho das Imagens com OpenCV

Para evitar distorções durante o redimensionamento ou corte de imagens, você pode conferir antes o tamanho original de uma imagem com o comando shape:

				
					img = cv2.imread('minha_imagem.jpg')
print(img.shape) 
# (481, 320, 3) # resultado
				
			

O primeiro valor é a altura da imagem, o segundo é a sua largura e o terceiro é o número de canais de cores.

Corte Imagens com OpenCV

Para cortar imagens e fotos com OpenCV, a sintaxe geral é mostrada abaixo.

				
					imagem_cortada = imagem_original[linha_inicial:linha_final, coluna_inicial:coluna_final]
				
			

Nela, precisamos usar uma notação equivalente a um fatiamento de listas. As linhas se referem à altura da imagem e as colunas se referem à sua largura. Veja um exemplo em código:

				
					# corte imagens com OpenCV
img = cv2.imread('minha_imagem.jpg') # abre imagem
cropped_image = img[100:300,80:200] # corta imagem
cv2.imwrite("noma_imagem.jpg", cropped_image) # salva nova imagem 
				
			

Nesse código, especificamos linhas e colunas para o início e término do corte da imagem e salvamos a nova imagem. Para quem prefere exibi-la ao invés de salvá-la, o comando é: cv2.imshow(nome_da_imagem).
Não é incomum ser necessário explorar diferentes valores de início e término das linhas e colunas para realizar o corte que desejamos, mas a técnica é simples e, em poucos minutos, sua foto estará pronta. Nossa imagem de exemplo segue abaixo. O corte de imagem é mostrado à direita.

corte de imagem com OpenCV e Python
corte imagem com OpenCV e Python

Imagem com IA Generativa – Dia 102

IA generativa img102

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial