Detectar si una imagen está contenida dentro de otra imagen mediante OpenCV en Python
Script en Python que detecta si la imagen está contenida dentro de otra
# Cargar OpenCV
import cv2
# Sirve para operar con cualquier dato numérico
import numpy as np
# Leer las imágenes que vamos a comparar
# Imagen sobre la que vamos a detectar si existe otra imagen
img_rgb = cv2.imread('Todo.jpg')
# Imagen que comprobamos si existe en la imagen Todo
template = cv2.imread('1.jpg')
# Tamaño de la imagen 1.jpg
w, h = template.shape[:-1]
# Función que sirve para detectar si una imagen está contenida en otra
res = cv2.matchTemplate(img_rgb, template, cv2.TM_CCOEFF_NORMED)
# Umbral admitido
threshold = .7
# Si está dentro del umbral, crear un cuadrado sobre la imagen contenida en la imagen Todo
loc = np.where(res >= threshold)
for pt in zip(*loc[::-1]): # Cambiar columnas y filas
cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 0), 1)
# Guardar el resultado
cv2.imwrite('result.png', img_rgb)