Архив рубрики: блог

Orange Pi Zero. Первое знакомство

OrangePi Zero начальная модель в семействе одноплатных микрокомпьютеров OrangePi. Компьютер построен на четырехядерном процессоре H2 Cortex-A7, который имеет встроенное видеоядро Mali400MP2. OrangePi Zero доступен в двух вариантах, которые отличаются объемом оперативной памяти — 256 и 512 Мб, соответственно. Мне достался вариант с 256 Мб ОЗУ. Тип памяти в обоих случаях DDR3. На плате распаян WiFi, поддерживаемые стандарты IEEE 802.11 b/g/n. Плата поставляется в комплекте с WiFi антенной, ее легко подключить и, при необходимости, заменить к плате она подключена через UFL гнездо. Также на плате присутствует RJ-45 разъем, для подключения сети Ethernet 10M/100M. Разъем TTL совместимого UART порта. Плата оснащена 4-мя USB 2.0 портами, два из них распаяны (один OTG), два выведенны на однорядную гребенку. На обратной стороне платы распаяно гнездо для карт формата Micro-SD (до 64 Гб). Полное описание модулей с указанием их расположения на плате можно найти под катом.

Рабочая конфигурация. Виден процессор H2+, память K4B2G16 и WiFi модуль XR819.

На фото выше показана плата OrangePi Zero с подключенным питанием, Micro SD картой на 4Гб, антенной WiFi и последовательным портом для дебага. Стоит отметить, что завода плата приходит только с распаянной однорядной гребенкой, двухрядную допаивал самостоятельно.

Читать далее

OpenCV. Запись видео из набора изображений

Запись видеофайла из серии изображений при помощи библиотеки opencv на языке Python 3.6. Для записи используется объект VideoWriter, который в моем случае вызывается с заранее определенными параметрами: название видеофайла (для сохранения), fourcc (видеокодек), fps, size, isColour.
Размер видеофайла size определяется при однократном чтении первой в серии картинки. Код последовательно читает картинки (названия серии Hxxxx.jpg — H0000.jpg, H0001.jpg, H0002.jpg и так далее), которые находятся в той же папке, где расположен сам исходник.

import cv2

end = 120		#последний номер изображения в серии
fps = 5			#fps
file_ind = 'H'	#индекс изображения

img = cv2.imread(file_ind+'0000.jpg') #читаем первое изображение
size = img.shape[1], img.shape[0] #получаем размеры - высота/ширина
fourcc = cv2.VideoWriter_fourcc(*'XVID') #подключаем кодек по http://www.fourcc.org/codecs.php
video_name = file_ind + '_video.avi'
video = cv2.VideoWriter(video_name, fourcc, fps, size, True) #создаем видеофайл, определяем параметры

for i in range(0,end,1): #проходим в цикле все изображения
    filename = file_ind+str(i).zfill(4)+'.jpg' #формируем переменную с номером файла изображения
    print(filename) #печатаем номер текущего файла
    try:
        img = cv2.imread(filename) #читаем файл изображения
    except:
        pass
    video.write(img) #дописываем кадр в видеофайл

video.release() #отключаем видеозапись
cv2.destroyAllWindows()

В результате сборки изображений получается следующее видео движения облачных масс в радиусе действия ДМРЛ аэропорта Борисполь.

Изображения для составления видео получены с сайта meteo.gov.ua и представляют собой данные ДМРЛ (доплеровского метеорологического радара) аэропорта Борисполь (UKBB) за 4 апреля 2017 года.