imageio_memory.py
# Эта работа лицензирована по лицензии MIT.
# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Пример потокового ввода-вывода изображений в памяти
#
# В этом примере показано, как использовать поток ImageIO для записи кадров в память и их воспроизведения.
# Примечание: хотя это должно работать на любой плате, для реальной пользы плате нужна SDRAM.
import csi
import image
import time
# Количество кадров для предварительного выделения памяти и записи
N_FRAMES = 500
csi0 = csi.CSI()
csi0.reset() # Сброс и инициализация датчика.
csi0.pixformat(csi.RGB565) # Установить формат пикселей RGB565 (или GRAYSCALE)
csi0.framesize(csi.QVGA) # Установить размер кадра QVGA (320x240)
# Этот размер кадра должен совпадать с размером изображения, переданным в ImageIO
csi0.window((120, 120))
csi0.snapshot(time=2000)
clock = time.clock()
# Запись в поток в памяти
stream = image.ImageIO((120, 120, csi.RGB565), N_FRAMES)
for i in range(0, N_FRAMES):
clock.tick()
stream.write(csi0.snapshot())
print(clock.fps())
while True:
# Перемотать поток и воспроизвести
stream.seek(0)
for i in range(0, N_FRAMES):
img = stream.read(copy_to_fb=True, pause=True)
# Здесь выполняйте алгоритмы машинного зрения над изображением.