Светочувствительный элемент
Модуль датчика (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) автоматическое усиление. При использовании цветового трекинга автоматическое усиление нужно отключить.
csi0.auto_whitebal() Включает (True) или выключает (False) автоматический баланс белого. При использовании цветового трекинга автоматический баланс белого нужно отключить.
csi0.auto_exposure(enable[\, exposure_us])
- enable включает (True) или выключает (False) автоматическую экспозицию. По умолчанию включена.
- Если enable равно False, exposure_us можно использовать для установки фиксированного времени экспозиции (в микросекундах).
Настройка окна ROI
csi0.window(roi)
ROI: Region Of Interest, "область интереса" в терминологии обработки
изображений. Это область, выделяемая из обрабатываемого изображения для
дальнейшей обработки.\

csi0.framesize(csi.VGA) # высокое разрешение
csi0.window((640, 80)) #берём центральную область 640*80
Формат roi - (x, y, w, h). См. раздел про статистику
Настройка отражения
csi0.hmirror(True)\ Горизонтальное отражение
csi0.vflip(True)\ Вертикальное отражение
Дополнительные настройки датчика см. в официальной китайской документации OpenMV: https://docs.singtown.com/micropython/zh/latest/openmvcam/library/omv.csi.html