sensor_manual_whitebal_control.py
# هذا العمل مرخص بموجب ترخيص MIT.
# حقوق النشر (c) 2013-2023 OpenMV LLC. جميع الحقوق محفوظة.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# التحكم اليدوي في توازن اللون الأبيض للحساس
#
# يوضح هذا المثال كيفية التحكم في
# كسب توازن اللون الأبيض لحساس الكاميرا يدويًا بدلاً من ترك التحكم التلقائي (AWB) يعمل.
# يتم تحقيق توازن اللون الأبيض عن طريق ضبط قيم كسب R/G/B
# بحيث يكون متوسط لون الصورة رماديًا. إن
# خوارزمية توازن اللون الأبيض التلقائي (AWB) تقوم بهذا من أجلك
# لكنها عادةً ما تنتهي بنتيجة مختلفة في كل
# مرة تقوم فيها بتشغيل الكاميرا، مما يجعل من الصعب الحصول على
# إعدادات صحيحة لتتبع الألوان. من خلال تسجيل
# قيم الكسب التي تفضلها يدويًا ثم فرضها على
# الحساس عند بدء التشغيل، يمكنك التحكم في الألوان
# التي تراها الكاميرا.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # إعادة ضبط المستشعر وتهيئته.
csi0.pixformat(csi.RGB565) # تعيين تنسيق البكسل إلى RGB565 (أو GRAYSCALE)
csi0.framesize(csi.QVGA) # تعيين حجم الإطار إلى QVGA (320x240)
csi0.snapshot(time=2000) # انتظر حتى تدخل الإعدادات حيز التنفيذ.
clock = time.clock() # أنشئ كائن ساعة (clock) لتتبع معدل الإطارات (FPS).
# يمكنك التحكم في كسب توازن اللون الأبيض هنا. القيمة الأولى هي
# كسب R بوحدة db، ثم كسب G بوحدة db، يليه كسب B بوحدة db.
#
# قم بإلغاء التعليق عن السطر أدناه بقيم الكسب التي تفضلها (احصل عليها من مخرجات الطباعة).
#
# csi0.auto_whitebal(False, rgb_gain_db = (0.0, 0.0, 0.0))
# ملاحظة: وضع (0.0, 0.0, 0.0) للكسب ينتج عنه شيء قريب من الصفر
# عند الخرج. لا تتوقع أن تكون القيمة الدقيقة الداخلة مساوية للقيمة
# الخارجة.
while True:
clock.tick() # تحديث ساعة معدل الإطارات (FPS).
img = csi0.snapshot() # التقاط صورة وإرجاعها.
print(clock.fps(), csi0.rgb_gain_db()) # طباعة قيم كسب RGB الحالية لتوازن اللون الأبيض التلقائي (AWB).