Article image

GM

Gabriel Meneses26/02/2023 00:23
Compartilhe

Encontrando imagem dentro de outra imagem usando Python e OpenCV

  • #Python

Com o Python, é possível localizar imagens dentro de outras imagens, ultilizando a biblioteca do OpenCV e Numpy!

Para começar é necessário instalar o OpenCV e o Numpy

pip install opencv-python ; pip install opencv-contrib-python ; pip install numpy

Depois de instalar as bibliotecas, importe as mesmas para o código

import numpy as np
import cv2

Para continuar é necessário adicionar duas variáveis, uma para a imagem principal, e outra para imagem que você quer encontrar dentro dessa imagem principal.

Abaixo as imagens foram definidas com duas variáveis diferentes, uma para a imagem principal, a outra o template.

big_image = cv2.imread("2023-Lotus-Emira-001-2160-1446x813.jpg")
small_image = cv2.imread("2023-Lotus-Emira-001-2160-1446x813(1).jpg")

Depois disso definimos o width e height da nossa marcação.

w, h = small_image.shape[:-1]

Com as variáveis definidas, chamamos as funções do OpenCV para localizar nossa imagem.

res = cv2.matchTemplate(big_image, small_image, cv2.TM_CCOEFF_NORMED)

Definimos também um valor para o quão as imagens se parecem por assim dizer.

threshold = 0.8

Localizamos aquele nosso template.

loc = np.where(res >= threshold)

E finalizando, desenhamos nosso retângulo na imagem, onde se encontra o nosso template

for pt in zip(*loc[::-1]):
cv2.rectangle(big_image, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2)

Depois só salvar a imagem com o nome que você quiser!

cv2.imwrite("resultado.png", big_image)

Façam os testes de vocês e se divirtam! As possibilidades são infinitas!

Compartilhe
Comentários (2)

A

Angel - 26/02/2023 10:51

Eu te amo demaaais

A

Angel - 26/02/2023 10:50

Eu te amo gato, você é muito inteligente ❤️