Python | Detección de esquinas con el método Harris Corner Detection usando OpenCV

El algoritmo de detección Harris Corner fue desarrollado para identificar las esquinas internas de una imagen. Las esquinas de una imagen se identifican básicamente como las regiones en las que hay variaciones de gran intensidad del degradado en todas las dimensiones y direcciones posibles. Las esquinas extraídas pueden ser parte de las características de la imagen, que pueden combinarse con características de otras imágenes y pueden usarse para extraer información precisa. Harris Corner Detection es un método para extraer las esquinas de la imagen de entrada y extraer características de la imagen de entrada. 
Sobre la función utilizada: 
 

Sintaxis: cv2.cornerHarris(src, dest, blockSize, kSize, freeParameter, borderType)
Parámetros:  
src : imagen de entrada (canal único, 8 bits o punto flotante) 
dest : imagen para almacenar las respuestas del detector Harris. El tamaño es el mismo  que el
de la imagen  de origen  .  coordenada del píxel correspondiente al píxel extrapolado especificado)


A continuación se muestra la implementación de Python: 
 

Python3

# Python program to illustrate
# corner detection with
# Harris Corner Detection Method
 
# organizing imports
import cv2
import numpy as np
 
# path to input image specified and
# image is loaded with imread command
image = cv2.imread('GeekforGeeks.jpg')
 
# convert the input image into
# grayscale color space
operatedImage = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
 
# modify the data type
# setting to 32-bit floating point
operatedImage = np.float32(operatedImage)
 
# apply the cv2.cornerHarris method
# to detect the corners with appropriate
# values as input parameters
dest = cv2.cornerHarris(operatedImage, 2, 5, 0.07)
 
# Results are marked through the dilated corners
dest = cv2.dilate(dest, None)
 
# Reverting back to the original image,
# with optimal threshold value
image[dest > 0.01 * dest.max()]=[0, 0, 255]
 
# the window showing output image with corners
cv2.imshow('Image with Borders', image)
 
# De-allocate any associated memory usage
if cv2.waitKey(0) & 0xff == 27:
    cv2.destroyAllWindows()

Aporte: 
 

Producción: 
 

Publicación traducida automáticamente

Artículo escrito por rishabhsingh1304 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 *