Модуль камеры OV5640 FPC

Модуль камеры OV5640 FPC — это компактный 5-мегапиксельный цветной датчик с прогрессивной разверткой (rolling shutter) и автофокусом. Он крепится к базовым платам OpenMV Cam через межплатный разъём для низкопрофильных сборок.

OV5640

Полную техническую документацию, фотографии и сведения о заказе см. на странице продукта OV5640.

Примечание

На данный момент не поддерживается на OpenMV N6.

Ключевые особенности

  • 5-мегапиксельный (2592x1944) датчик с прогрессивной разверткой

  • Автофокус, диафрагма F2.0, переменное фокусное расстояние

Использование

Потоковая передача видео QVGA (320x240) RGB565 — OV5640 работает как обычный модуль камеры для любого конвейера обработки изображений:

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
clock = time.clock()

while True:
    clock.tick()
    img = csi0.snapshot()
    print(clock.fps())

OV5640 также имеет встроенный JPEG-компрессор — установите pixformat в csi.JPEG, и датчик будет передавать сжатые кадры напрямую в OpenMV Cam по шине камеры, благодаря чему хост остаётся свободным для обработки, а не для кодирования. Управляйте качеством сжатия (0-100) с помощью csi.CSI.quality — более высокие значения сохраняют больше деталей за счёт увеличения размера кадров.

Захват JPEG-кадров с разрешением 1280x720 (HD):

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.JPEG)
csi0.framesize(csi.HD)
csi0.quality(90)
clock = time.clock()

while True:
    clock.tick()
    img = csi0.snapshot()
    print(clock.fps())

Захват JPEG-кадров с разрешением 1920x1080 (FHD):

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.JPEG)
csi0.framesize(csi.FHD)
csi0.quality(90)
clock = time.clock()

while True:
    clock.tick()
    img = csi0.snapshot()
    print(clock.fps())

Захват JPEG-кадров с полным разрешением 5 МП — 2592x1944 (WQXGA2):

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.JPEG)
csi0.framesize(csi.WQXGA2)
csi0.quality(90)
clock = time.clock()

while True:
    clock.tick()
    img = csi0.snapshot()
    print(clock.fps())

OV5640 оснащён объективом с автофокусом на основе звуковой катушки (voice-coil). Запустите один проход автофокуса через csi.CSI.ioctl с csi.IOCTL_TRIGGER_AUTO_FOCUS — датчик один раз перемещает мотор фокусировки и фиксируется на том, что находится перед ним:

csi0.ioctl(csi.IOCTL_TRIGGER_AUTO_FOCUS)

Повторно вызывайте ioctl каждый раз, когда сцена меняется — автофокус срабатывает однократно, а не непрерывно.