¿Como comparar dos imágenes en Python y OpenCV?

Esoy desarrollando una apliacion en Python para comparar dos imagenes mediante sus bordes, solo que no paso de obtener los bordes de ambas imagenes, ojala me puedan ayudar con algun tip porque no encuentro mucho por la red.

Mi codigo es el siguiente

Import numpy as np
Import cv2

# Cargamos la imagen UNO
img1= cv2.imread("image/Botella1.JPG")
#cv2.imshow("img1", img1)
# Convertimos a escala de grises imagen UNO
gris = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
# Aplicar suavizado Gaussiano imagen UNO
gauss = cv2.GaussianBlur(gris, (3,3), 0)
#cv2.imshow("suavizado", gauss)
# Detectamos los bordes con Canny imagen UNO
canny = cv2.Canny(gauss, 50, 550)
#cv2.imshow("canny", canny)
# Buscamos los contornos imagen UNO
_, contours, _ = cv2.findContours(canny.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img1,contours,-1,(0,0,255), 2)
cv2.imshow("contornos", img1)

# Cargamos la imagen DOS
img2= cv2.imread("image/Botella2.JPG")
#cv2.imshow("img2", img2)
# Convertimos a escala de grises imagen DOS
gris= cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# Aplicar suavizado Gaussiano imagen DOS
gauss= cv2.GaussianBlur(gris, (5,5), 0)
#cv2.imshow("suavizado1", gauss)
# Detectamos los bordes con Canny imagen DOS
canny= cv2.Canny(gauss, 50, 490)
#cv2.imshow("canny1", canny)
# Buscamos los contornos imagen DOS
_, contours, _= cv2.findContours(canny.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img2,contours,-1,(0,0,255), 2)
cv2.imshow("contornos1",img2)

cv2.waitKey(0)

while(1):
tecla = cv2.waitKey(5) & 0xFF
if tecla == 27:
break
Cv2. DestroyAllWindows()

Añade tu respuesta

Haz clic para o