Momentos de imagen usando OpenCV en Python

Manav Narula 30 enero 2023
  1. Use la función moments() para calcular momentos usando OpenCV en Python
  2. Conclusión
Momentos de imagen usando OpenCV en Python

Python utiliza la biblioteca opencv para realizar varias tareas de Computer Vision. Estas tareas implican leer y procesar imágenes de manera muy eficiente.

Hay muchas propiedades de una imagen. La biblioteca opencv proporciona muchas funciones para trabajar con contornos.

Los contornos están asociados para ayudar a proporcionar información sobre la curva a lo largo del límite de un objeto en la imagen y sus formas asociadas. Una de esas características de los contornos se llama momentos.

Los momentos de una imagen se definen en términos de visión artificial. Puede describirse como el promedio ponderado de la intensidad de los píxeles de la imagen dada.

Podemos encontrar información sobre el área, la orientación de la forma y su centroide usando momentos de imagen.

Este tutorial discutirá los momentos de la imagen usando opencv en Python.

Use la función moments() para calcular momentos usando OpenCV en Python

En Python, podemos usar los momentos de la imagen usando la función moments() de la biblioteca opencv. Los momentos hasta el tercer orden de un polígono se calculan usando esta función y devuelve los momentos en un array.

Podemos usar los valores devueltos en la matriz dada para calcular las propiedades como el centroide de una forma.

Veamos ahora un ejemplo de lo mismo.

import cv2

i = cv2.imread("img6.jpg")
img_g = cv2.cvtColor(i, cv2.COLOR_BGR2GRAY)
ret, img = cv2.threshold(img_g, 127, 255, 0)

M = cv2.moments(img)
X = int(M["m10"] / M["m00"])
Y = int(M["m01"] / M["m00"])

cv2.circle(i, (X, Y), 5, (255, 255, 255), -1)
cv2.imshow("Output", i)
cv2.waitKey(0)
cv2.destroyAllWindows()

Producción:

Momentos de imagen usando opencv en Python

En el ejemplo anterior, encontramos el centroide de un círculo usando los momentos de la imagen, que se calculan usando la función moments().

Primero, leemos la imagen requerida. La imagen se convierte a escala de grises usando la función cvtColor que convierte una imagen al espacio de color requerido.

Luego aplicamos la técnica de umbralización a esta imagen. Esto ayudará a abordar el ruido y filtrar los píxeles con valores extremos.

Usamos la función threshold() y proporcionamos el valor de umbral dentro de la función. En nuestro caso, cada píxel superior a 127 se cambia a 255, y por debajo de 12 se establece como cero.

Luego calculamos los momentos de la imagen. Usamos los valores de la matriz devuelta para encontrar la posición del centroide del círculo.

El centroide se traza en la imagen original utilizando la función circle(). Esta función crea un pequeño círculo en las coordenadas del centroide.

Se muestra la salida final, y usamos las funciones waitKey() y destroyAllWindows() para esperar a que el usuario presione alguna tecla antes de cerrar la ventana de salida automáticamente.

Conclusión

Este tutorial discutió los momentos de la imagen en el campo de la visión por computadora y cómo calcular los momentos usando la biblioteca opencv en Python. Usamos la función moments() de la biblioteca opencv para esto.

Los momentos se devuelven en un array y se pueden usar para encontrar detalles como la orientación, el área y el centroide de una forma. Calculamos el centroide de un círculo en nuestro ejemplo.

Se ilustra el código y se explica cada línea.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn