mode_adaptive_threshold_filter.py
# هذا العمل مرخص بموجب ترخيص MIT.
# حقوق النشر (c) 2013-2023 OpenMV LLC. جميع الحقوق محفوظة.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# مثال مرشح العتبة التكيفية بالمنوال (Mode Adaptive Threshold Filter)
#
# يوضح هذا المثال الترشيح بالمنوال (mode filtering) مع العتبة التكيفية (adaptive thresholding).
# عند استخدام mode(threshold=True) تقوم الدالة mode() بتطبيق عتبة تكيفية على الصورة
# وذلك بمقارنة منوال البكسلات المحيطة ببكسل معين، مطروحًا منه إزاحة، مع ذلك البكسل.
# تجنب استخدام مرشح المنوال (mode filter) على صور RGB565. فهذا سيتسبب في ظهور تشوهات على حواف الصورة...
import csi
import time
csi0 = csi.CSI()
csi0.reset() # تهيئة مستشعر الكاميرا.
csi0.pixformat(csi.GRAYSCALE) # أو csi.RGB565
csi0.framesize(csi.QQVGA) # أو csi.QVGA (أو غيرها)
csi0.snapshot(time=2000) # السماح للإعدادات الجديدة بأن تصبح فعالة.
clock = time.clock() # تتبع معدل الإطارات (FPS).
while True:
clock.tick() # تتبع عدد الميلي ثانية المنقضية بين استدعاءات snapshot().
img = csi0.snapshot() # التقاط صورة وإرجاعها.
# المعامل الوحيد لمرشّح الوسيط (median) هو حجم النواة (kernel)، ويمكن أن يكون
# 0 أو 1 أو 2 لنواة بحجم 1x1 أو 3x3 أو 5x5 على التوالي.
img.mode(1, threshold=True, offset=5, invert=True)
print(clock.fps()) # ملاحظة: تعمل كاميرا OpenMV الخاصة بك بحوالي نصف السرعة أثناء
# الاتصال بحاسوبك. يجب أن يزداد معدل الإطارات (FPS) بعد قطع الاتصال.