Читать книгу Visión artificial - Tomás Domínguez Mínguez - Страница 19
4.4 CÍRCULOS Y ELIPSES
ОглавлениеPara pintar un círculo, la función que tiene que utilizar es:
circle(imagen, centro, radio, color, grosor)
En el caso de una elipse, sería:
En esta última función, los argumentos que requieren de una explicación adicional son los relacionados con la longitud de los ejes y los ángulos. En el primer caso, esta se expresa como una tupla cuyo primer valor corresponde al eje mayor, y el segundo, al menor, dado en píxeles. Respecto al ángulo, hace referencia al arco de la elipse que se va a pintar. Si esta fuera de 360 grados, se dibujaría completa, 180 grados correspondería a la mitad, etc. El ángulo inicial sería por el que empezaría a pintarse dicho arco, y el final, en el que acabaría.
En esta función, el grosor es un argumento opcional.
Para practicar con el dibujo de círculos, va a pintar una diana sobre la imagen del cuadro de la niña. Su código es el siguiente:
Este programa no es difícil de entender. Lo único que sería necesario comentar es que todas las circunferencias con las que se dibuje la diana tendrán como centro el de la propia imagen. De ahí que se utilice el atributo shape para obtener el ancho y alto, ya que el centro de la imagen será el punto:
(ancho/2, alto/2)
Puesto que una división devuelve un valor de tipo float y los píxeles de una imagen deben ser números enteros, tendrá que realizarse una operación de casting para obtener las coordenadas x, y del centro de la imagen (centro_x y centro_y).
El bucle for que hay a continuación establece el rango con los valores del radio de la circunferencia que se va a pintar en cada bucle con la función circle().
Observe el resultado obtenido.