ulab.py
# هذا العمل مرخص بموجب ترخيص MIT.
# حقوق النشر (c) 2013-2023 OpenMV LLC. جميع الحقوق محفوظة.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Ulab هي وحدة تشبه numpy مخصصة لـ micropython، الغرض منها تبسيط وتسريع العمليات الحسابية الشائعة
# على المصفوفات (arrays). يوضح هذا المثال البسيط حساب المتوسط والانحراف المعياري (mean/std) على صورة.
#
# ملاحظة: تتسبب مصفوفات ndarrays في تفتيت الكومة (heap) بسهولة. إذا نفدت الذاكرة لديك،
# فلا يوجد الكثير الذي يمكن فعله حيال ذلك، وقد يساعد تقليل الدقة (resolution).
import csi
import time
from ulab import numpy as np
csi0 = csi.CSI()
csi0.reset() # إعادة ضبط المستشعر وتهيئته.
csi0.pixformat(csi.GRAYSCALE) # تعيين تنسيق البكسل إلى RGB565 (أو GRAYSCALE)
csi0.framesize(csi.QQVGA) # تعيين حجم الإطار إلى QVGA (320x240)
clock = time.clock() # أنشئ كائن ساعة (clock) لتتبع معدل الإطارات (FPS).
while True:
img = csi0.snapshot() # التقاط صورة وإرجاعها.
a = np.array(img, dtype=np.uint8)
print("mean: %d std:%d" % (np.mean(a), np.std(a)))