es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo encontrar el centroide de múltiples rectángulos – Python

Tengo que encontrar el centroide exacto de varios rectángulos. Las coordenadas de cada rectángulo son las siguientes:

coord = (0.294792, 0.474537, 0.0989583, 0.347222)  ## (xcenter, ycenter, width, height)

Tengo alrededor de 200 rectángulos, ¿cómo puedo calcular el centroide de ellos?

Ya intenté implementarlo, pero el código no funcionó bien.

Mi código:

for i in range(len(xCenter)):
       center = np.array((xCenter[i]+(Width[i]/2), yCenter[i]+(Height[i]/2)))
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para encontrar el centroide de varios rectángulos, puedes utilizar la fórmula:

    x = (suma de los centros en x) / número de rectángulos
    y = (suma de los centros en y) / número de rectángulos

    Así que, en tu caso, primero puedes extraer los centros en x e y, el ancho y la altura de todos los rectángulos a partir de las coordenadas dadas. Luego, puedes calcular el centroide utilizando la fórmula mencionada anteriormente. Aquí tienes el código en Python que debería funcionar:

    import numpy as np
    
    # coordenadas dadas de los rectángulos
    rect_coords = [(0.294792, 0.474537, 0.0989583, 0.347222), ..., ...] # lista de todas las coordenadas de los rectángulos
    
    # extraer centros, ancho y altura de los rectángulos
    x_centers = [coord[0] for coord in rect_coords]
    y_centers = [coord[1] for coord in rect_coords]
    widths = [coord[2] for coord in rect_coords]
    heights = [coord[3] for coord in rect_coords]
    
    # calcular el centroide
    x = np.sum(np.array(x_centers) + np.array(widths) / 2) / len(rect_coords)
    y = np.sum(np.array(y_centers) + np.array(heights) / 2) / len(rect_coords)
    
    print("Centroide:", x, y)
    

    Este código debería darte el centroide exacto de todos los rectángulos. Avísame si tienes alguna pregunta o necesitas más ayuda.

Comments are closed.