Requisito previo: Formas geométricas usando OpenCV
Dados tres vértices de un triángulo, escriba un programa Python para encontrar el centroide del triángulo y luego dibuje el triángulo con su centroide en una ventana negra usando OpenCV.
Ejemplos:
Input: (100, 200) (50, 50) (300, 100) Output: (150, 116)
Bibliotecas necesarias:
OpenCV Numpy
Enfoque:
cree una ventana negra con tres canales de color con una resolución de 400 x 300. Dibuje tres líneas que pasen por los puntos dados utilizando la función de línea incorporada de OpenCV. Creará un triángulo en la ventana negra. Encuentre el centroide del triángulo usando la siguiente fórmula simple.
Dibuje este centroide en la ventana negra usando la función de círculo de OpenCV con grosor cero.
A continuación se muestra la implementación del enfoque anterior:
# Python3 code to draw a triangle and find centroid # importing libraries import numpy as np import cv2 # Width and height of the black window width = 400 height = 300 # Create a black window of 400 x 300 img = np.zeros((height, width, 3), np.uint8) # Three vertices(tuples) of the triangle p1 = (100, 200) p2 = (50, 50) p3 = (300, 100) # Drawing the triangle with the help of lines # on the black window With given points # cv2.line is the inbuilt function in opencv library cv2.line(img, p1, p2, (255, 0, 0), 3) cv2.line(img, p2, p3, (255, 0, 0), 3) cv2.line(img, p1, p3, (255, 0, 0), 3) # finding centroid using the following formula # (X, Y) = (x1 + x2 + x3//3, y1 + y2 + y3//3) centroid = ((p1[0]+p2[0]+p3[0])//3, (p1[1]+p2[1]+p3[1])//3) # Drawing the centroid on the window cv2.circle(img, centroid, 4, (0, 255, 0)) # image is the title of the window cv2.imshow("image", img) cv2.waitKey(0)
Producción:
(150, 116)
Publicación traducida automáticamente
Artículo escrito por SURENDRA_GANGWAR y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA