العنصر الحساس للضوء

وحدة المستشعر (Sensor)، تُستخدم لضبط معاملات العنصر الحساس للضوء.

على سبيل المثال:

import csi#استيراد وحدة العنصر الحساس للضوء
csi0 = csi.CSI()


# إعداد الكاميرا
csi0.reset()#تهيئة العنصر الحساس للضوء
csi0.pixformat(csi.RGB565)#ضبط الوضع على الألوان
csi0.framesize(csi.QVGA)#ضبط حجم الصورة
csi0.snapshot(time=2000)#تخطي بعض الإطارات، والانتظار حتى يستقر العنصر الحساس للضوء بعد تغيير الإعدادات.

# التقاط الصور باستمرار
while(True):
    img = csi0.snapshot()#التقاط صورة واحدة، حيث img هو كائن من نوع image

التهيئة

  • csi0.reset() تُهيّئ العنصر الحساس للضوء

ضبط الألوان/الأبيض والأسود

  • csi0.pixformat() تضبط نمط البكسل.
    • csi.GRAYSCALE: تدرج رمادي، 8 بت لكل بكسل.
    • csi.RGB565: ألوان، 16 بت لكل بكسل.

ضبط حجم الصورة

  • csi0.framesize() تضبط حجم الصورة
    • csi.QQCIF: 88x72
    • csi.QCIF: 176x144
    • csi.CIF: 352x288
    • csi.QQSIF: 88x60
    • csi.QSIF: 176x120
    • csi.SIF: 352x240
    • csi.QQQQVGA: 40x30
    • csi.QQQVGA: 80x60
    • csi.QQVGA: 160x120
    • csi.QVGA: 320x240
    • csi.VGA: 640x480
    • csi.HQQQVGA: 80x40
    • csi.HQQVGA: 160x80
    • csi.HQVGA: 240x160
    • csi.B64X32: 64x32 (لصورة الفرق بين الإطارات image.find_displacement())
    • csi.B64X64: 64x64 لصورة الفرق بين الإطارات image.find_displacement())
    • csi.B128X64: 128x64 (لصورة الفرق بين الإطارات image.find_displacement())
    • csi.B128X128: 128x128 (لصورة الفرق بين الإطارات image.find_displacement())
    • csi.LCD: 128x160 (للوحة توسعة LCD)
    • csi.QQVGA2: 128x160 (للوحة توسعة LCD)
    • csi.WVGA: 720x480 (لـ MT9V034)
    • csi.WVGA2:752x480 (لـ MT9V034)
    • csi.SVGA: 800x600 (لمستشعر OV5640 فقط)
    • csi.XGA: 1024x768 (لمستشعر OV5640 فقط)
    • csi.SXGA: 1280x1024 (لمستشعر OV5640 فقط)
    • csi.UXGA: 1600x1200 (لمستشعر OV5640 فقط)
    • csi.HD: 1280x720 (لمستشعر OV5640 فقط)
    • csi.FHD: 1920x1080 (لمستشعر OV5640 فقط)
    • csi.QHD: 2560x1440 (لمستشعر OV5640 فقط)
    • csi.QXGA: 2048x1536 (لمستشعر OV5640 فقط)
    • csi.WQXGA: 2560x1600 (لمستشعر OV5640 فقط)
    • csi.WQXGA2: 2592x1944 (لمستشعر OV5640 فقط)

تخطي بعض الإطارات

  • csi0.snapshot(frames=10) تتخطى n صورة. بعد تغيير الإعدادات، تخطَّ بعض الإطارات وانتظر حتى يستقر المستشعر.

الحصول على صورة

  • csi0.snapshot() تلتقط صورة وتُعيد كائن image.

الكسب/توازن اللون الأبيض/التعريض الضوئي التلقائي

  • csi0.auto_gain() تُشغّل (True) أو تُوقف (False) الكسب التلقائي (auto gain). عند استخدام تتبع الألوان، يجب إيقاف الكسب التلقائي.

  • csi0.auto_whitebal() تُشغّل (True) أو تُوقف (False) توازن اللون الأبيض التلقائي. عند استخدام تتبع الألوان، يجب إيقاف توازن اللون الأبيض التلقائي.

  • csi0.auto_exposure(enable[\, exposure_us])

    • enable تُشغّل (True) أو توقف (False) التعريض الضوئي التلقائي. مُفعّل افتراضيًا.
    • إذا كانت enable تساوي False، يمكن استخدام exposure_us لضبط زمن تعريض ضوئي ثابت (بالميكروثانية).

ضبط منطقة الاهتمام (Window ROI)

csi0.window(roi)

ROI: اختصار لـ Region Of Interest، وهو مصطلح "منطقة الاهتمام" في معالجة الصور. وهي المنطقة المُراد معالجتها والمُستخرجة من الصورة المراد معالجتها.\

csi0.framesize(csi.VGA) # دقة عالية
csi0.window((640, 80)) #أخذ المنطقة الوسطى بحجم 640*80

صيغة roi هي (x, y, w, h). راجع صفحة الإحصائيات (statistics)

ضبط الانعكاس

csi0.hmirror(True)\ انعكاس أفقي

csi0.vflip(True)\ انعكاس رأسي

لمزيد من إعدادات المستشعر، راجع الوثائق الرسمية الصينية لـ OpenMV: https://docs.singtown.com/micropython/zh/latest/openmvcam/library/omv.csi.html

results matching ""

    No results matching ""