Mida la similitud entre imágenes usando Python-OpenCV

Prerrequisitos: Python OpenCV
Supongamos que tenemos dos imágenes de datos y una imagen de prueba. Averigüemos qué imagen de datos es más similar a la imagen de prueba usando python y la biblioteca OpenCV en Python.
Primero carguemos la imagen y busquemos el histograma de imágenes.
Importando biblioteca 
 

import cv2

Importación de datos de imagen 
 

image = cv2.imread('test.jpg')

Conversión a imagen gris 
 

gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

Encontrar histograma 
 

histogram = cv2.calcHist([gray_image], [0], 
                              None, [256], [0, 256])

Ejemplo:
Imágenes utilizadas:
data1.jpg 
 

datos2.jpg 
 

prueba.jpg 
 

Python3

import cv2
  
     
# test image
image = cv2.imread('cat.jpg')
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
histogram = cv2.calcHist([gray_image], [0],
                         None, [256], [0, 256])
  
# data1 image
image = cv2.imread('cat.jpeg')
gray_image1 = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
histogram1 = cv2.calcHist([gray_image1], [0],
                          None, [256], [0, 256])
  
# data2 image
image = cv2.imread('food.jpeg')
gray_image2 = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
histogram2 = cv2.calcHist([gray_image2], [0],
                          None, [256], [0, 256])
  
  
c1, c2 = 0, 0
  
# Euclidean Distance between data1 and test
i = 0
while i<len(histogram) and i<len(histogram1):
    c1+=(histogram[i]-histogram1[i])**2
    i+= 1
c1 = c1**(1 / 2)
  
 
# Euclidean Distance between data2 and test
i = 0
while i<len(histogram) and i<len(histogram2):
    c2+=(histogram[i]-histogram2[i])**2
    i+= 1
c2 = c2**(1 / 2)
  
if(c1<c2):
    print("data1.jpg is more similar to test.jpg as compare to data2.jpg")
else:
    print("data2.jpg is more similar to test.jpg as compare to data1.jpg")

Producción : 
 

data1.jpg is more similar to test.jpg as compare to data2.jpg

Publicación traducida automáticamente

Artículo escrito por iamjpsonkar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *