find_circles.py

# Esta obra está licenciada bajo la licencia MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Todos los derechos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Ejemplo de búsqueda de círculos
#
# Este ejemplo muestra cómo encontrar círculos en la imagen usando la Transformada
# de Hough. https://en.wikipedia.org/wiki/Circle_Hough_Transform
#
# Tenga en cuenta que el método find_circles() solo encontrará círculos que estén completamente
# dentro de la imagen. Los círculos que salen de la imagen/roi se ignoran...

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)  # la escala de grises es más rápida
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

clock = time.clock()

while True:
    clock.tick()
    img = csi0.snapshot().lens_corr(1.8)

    # Los objetos círculo tienen cuatro valores: x, y, r (radio) y magnitude. La
    # magnitude es la fuerza de la detección del círculo. Cuanto mayor,
    # mejor...

    # `threshold` controla cuántos círculos se encuentran. Aumente su valor
    # para disminuir el número de círculos detectados...

    # `x_margin`, `y_margin` y `r_margin` controlan la fusión de círculos
    # similares en las direcciones x, y y r (radio).

    # r_min, r_max y r_step controlan qué radios de círculos se prueban.
    # Reducir el número de radios de círculo probados produce una gran mejora de rendimiento.

    for c in img.find_circles(
        threshold=2000,
        x_margin=10,
        y_margin=10,
        r_margin=10,
        r_min=2,
        r_max=100,
        r_step=2,
    ):
        img.draw_circle(c, color=(255, 0, 0))
        print(c)

    print("FPS %f" % clock.fps())

results matching ""

    No results matching ""