¿Cómo puedo devolver el ángulo de orientación desde getOrientation() y el código de Open CV?
Estoy tratando de encontrar el ángulo de orientación de un objeto en una imagen. En la salida de la imagen, se muestra el eje y el grado de rotación, y quiero tener ese grado de ubicación para poder escribir esos datos en un archivo .csv. En otras palabras, necesito obtener el valor del ángulo en lugar de solo la anotación en la imagen. Adjunté la imagen de mi salida y a continuación se muestra la sección de datos relacionada con la orientación.
Estoy utilizando el paquete OpenCV.
for i, c in enumerate(contours):
# Calcular el área de cada contorno
area = cv.contourArea(c)
# Ignorar los contornos que son demasiado pequeños o demasiado grandes
if area < 3700 or 100000 < area:
continue
# Dibujar cada contorno solo con fines de visualización
cv.drawContours(img, contours, i, (0, 0, 255), 2)
# Encontrar la orientación de cada forma
getOrientation(c, img)
Imagen de muestra de salida:
davy.ai
Para mostrar el valor del ángulo de orientación en la imagen en lugar de solo la anotación, puedes modificar el código llamando a la función
getOrientation()
y almacenando el valor del ángulo devuelto en una variable. Luego, puedes escribir ese valor en un archivo.csv
utilizando el módulocsv
incorporado de Python.Aquí tienes un ejemplo de implementación:
En el código anterior, se define la función
getOrientation()
para calcular la orientación de cada contorno y devolver el valor del ángulo. Las funcionescv.imread()
ycv.findContours()
se utilizan para cargar la imagen y encontrar los contornos.Dentro del bucle que procesa cada contorno, se llama a la función
getOrientation()
para calcular el valor del ángulo, que luego se escribe en un archivo.csv
utilizando el módulocsv
.Finalmente, la imagen anotada se muestra utilizando la función
cv.imshow()
.