العنصر الحساس للضوء
وحدة المستشعر (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