Доступ к камере Raspberry Pi с помощью библиотеки OpenCV на языке программирования Python


Для работы с фото-, видеоизображением нам понадобится установить на наш контроллер (плата Raspberry Pi) несколько программных пакетов, в том числе:

Python 3язык программирования Python 3 и IDE (среда разработки для него)Логотип Python
Библиотека NumPy для языка Python 3эта библиотека позволит нам эффективно работать с массивами данных. Все изображения с нашей видеокамеры будем преобразовывать в массив данных , где каждому пикселю на изображении соответствует свой элемент массива с опреденным значением (интенсивностью цвета).Логотип NumPy
Библиотека OpenCV для Python 3библиотека для работы с изображениями и видео.Логотип OpenCV
Набор дополнительных кодеков и инструментовнабор библиотек для работы с различными форматами изображений (jpeg, tiiff и др.) и видео (mp4, xvid, h264) и другие.Логотип Linux

Так как данные пакеты не установлены в системе raspbian по умолчанию, нам придется сделать это вручную. Приступим!

1.1. Установка зависимостей

Начнем с проверки наличия обновления и их установки:

sudo apt-get update
sudo apt-get upgrade

На диске понадобиться место , чтобы определить какие пакеты занимают больше всего места , можно воспользоваться удобным скриптом:

dpkg-query -W --showformat='${Installed-Size;10}\t${Package}\n' | sort -k1,1n

Удалить ненужные пакеты можно с помощью команды. Например, приведенная ниже команда удаляет wolfram engine:

sudo apt-get purge wolfram-engine

Далее устанавливаем необходимую среду разработки и пакеты:

sudo apt-get install build-essential cmake pkg-config

Устанавливаем пакеты для работы с форматами изображений JPEG, PNG, TIFF, и т.д.

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev

Установка пакетов для работы с различными форматами видео:

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev

Пакеты для создания простых экранных форм:

sudo apt-get install libgtk2.0-dev

Ускоренные операции над матрицами:

sudo apt-get install libatlas-base-dev gfortran

Заголовочные файлы языка python версий 2.7 и 3. у нас на плате они уже были установлены ранее:

sudo apt-get install python2.7-dev python3-dev

1.2 Менеджер пакетов pip и библиотека numpy

Установим менеджер пакетов pip с его помощью мы сможем легко устанавливать дополнительные библиотеки для языка python

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Для работы в python 3 рекомендуем установить pip3:

sudo apt install python3-pip

Установим библиотеку для работы с массивами данных на языке python (именно в числовой массив мы будем преобразовывать наши изображения для их последующей обработки:

pip3 install numpy
Установка пакетов через терминал. Пакет numpy успешно установлен
Рис. 3 Устанавливаем необходимые пакеты через терминал. Пакет numpy успешно установлен

1.3 Скачиваем и устанавливаем OpenCV

Мы установим библиотеку opencv с помощью менеджера библиотек для языка python — pip, который скачивали ранее. Это займет не больше минуты.

pip3 install opencv-python

В интернете вы можете найти инструкции в которых библиотеку opencv рекомендуют собирать с помощью пакета cmake, но , во-первых, это занимает много времени, от двух часов, во-вторых, потребует от вас длительных танцов с бубном.
На дату написания данной статьи на плату Raspberry Pi 3b+, с установленной операционной системой Raspbian stratch мы успешно установили OpenCV версии 3.4.4 через менеджер библиотек pip.

2. Проверяем установленное программное обеспечение (библиотека OpenCV и среда разработки Python3) в работе.

2.1 Проверка OpenCV и Python.

Запускаем среду разработки Python3 через меню. Также, возможно сделать это через командную строку прописав в ней:

python3

Теперь выполним простейший алгоритм с использованием библиотеки OpenCV. Сначала, загрузим библиотеку:

import cv2

Затем запросим у интерпретатора версию данной библиотеки:

cv2.__version__

Если она установлена , вы получите в ответ: «3.4.4». Либо другую версию, если вы устанавливали ее. Это значит, что все установилось корректно.

2.2 Удаляем временные файлы и восстанавливаем размер файла подкачки.

Полезные ссылки:

  1. Инструкция по подключению камеры , установке и настройке opencv и python на raspberry pi на английском: https://www.pyimagesearch.com/2015/02/23/install-opencv-and-python-on-your-raspberry-pi-2-and-b/
  2. Инструкция по установке и настройке opencv на raspberry pi на русском: http://robotclass.ru/articles/raspberrypi-3-opencv-3-install/
  3. Еще одна краткая инструкция как установить opencv3 на python3 на английском https://www.deciphertechnic.com/install-opencv-python-on-raspberry-pi/
Сохраните или поделитесь