find_circles.py

# هذا العمل مرخص بموجب ترخيص MIT.
# حقوق النشر (c) 2013-2023 OpenMV LLC. جميع الحقوق محفوظة.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# مثال العثور على الدوائر
#
# يوضح هذا المثال كيفية العثور على الدوائر في الصورة باستخدام تحويل
# هَف (Hough Transform). https://en.wikipedia.org/wiki/Circle_Hough_Transform
#
# لاحظ أن دالة find_circles() ستعثر فقط على الدوائر الموجودة بالكامل
# داخل الصورة. يتم تجاهل الدوائر التي تمتد خارج الصورة/ROI...

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)  # التدرج الرمادي (grayscale) أسرع
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

clock = time.clock()

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

    # تحتوي كائنات الدائرة على أربع قيم: x وy وr (نصف القطر) والمقدار (magnitude). و
    # يمثل المقدار قوة اكتشاف الدائرة. القيمة الأعلى
    # أفضل...

    # تتحكم `threshold` في عدد الدوائر التي يتم العثور عليها. قم بزيادة قيمتها
    # لتقليل عدد الدوائر المكتشفة...

    # تتحكم `x_margin` و`y_margin` و`r_margin` في دمج الدوائر
    # المتشابهة في اتجاهات x وy وr (نصف القطر).

    # تتحكم r_min وr_max وr_step في نصف أقطار الدوائر التي يتم اختبارها.
    # يؤدي تقليل عدد أنصاف أقطار الدوائر المختبَرة إلى تحسين كبير في الأداء.

    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 ""