> For the complete documentation index, see [llms.txt](https://copter-space.gitbook.io/uchebnik-mashinnoe-zrenie-tom-2/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://copter-space.gitbook.io/uchebnik-mashinnoe-zrenie-tom-2/razdel-3/osnovy-kompyuternogo-zreniya-i-opencv.md).

# Основы компьютерного зрения и OpenCV

&#x20;OpenCV (Open Source Computer Vision Library: <http://opencv.org>) – набор библиотек с открытым исходным кодом, распространяемый по лицензии BSD, в который включены сотни алгоритмов компьютерного зрения.

<https://docs.opencv.org/3.4.1/d1/dfb/intro.html>

### Установка OpenCV на Raspberry PI

<http://robotclass.ru/articles/raspberrypi-3-opencv-3-install/>\
<http://www.ekzorchik.ru/2017/09/how-to-install-opencv-on-raspberry-pi-3-model-b-jessie/>

Установка библиотек OpenCV – из исходных кодов -длительный процесс, он поэтапно описан ниже в этой главе.\
Первым делом нужно обновить стандартный набор пакетов и перезагрузить Raspberry:

```
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo reboot
```

Установка инструментов для разработки:

```
sudo apt-get update
```

&#x20;Установка инструментов для разработки:

```
sudo apt-get install build-essential git 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
sudo apt-get install libxvidcore-dev libx264-dev
```

Установка библиотеки GTK, для возможности отображения картинок на экране и построения GUI интерфейсов:

```
sudo apt-get install libgtk2.0-dev
```

Инструменты для ускорения вычислений (операций над матрицами и т.п.):

```
sudo apt-get install libatlas-base-dev gfortran
```

Заголовочные файлы для работы с языком Python:

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

Далее нужно получить из интернет исходный код библиотек OpenCV (Raspberry PI должен быть подключен к Интернет для этого). В нашем примере мы получаем версию библиотек 3.0.0. По мере выхода новых релизов OpenCV номер 3.0.0 следует заменить на соответствующий:

```
cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.0.0.zip
unzip opencv.zip
```

Для полной установки также можно установить дополнительные библиотеки OpenCV. Убедитесь, что версии самой OpenCV и библиотек совпадают (в нашем примере – 3.0.0):

```
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.0.0.zip
unzip opencv_contrib.zip
```

Установим менеджер пакетов для Python - pip:

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

Подготовка к сборке OpenCV из исходных кодов:

```
cd ~/opencv-3.0.0/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
 -D CMAKE_INSTALL_PREFIX=/usr/local \
 -D INSTALL_C_EXAMPLES=ON \
 -D INSTALL_PYTHON_EXAMPLES=ON \
 -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.0.0/modules \
 -D BUILD_EXAMPLES=ON ..
```

**Нужно проверить вывод команды cmake, для Python 2 и 3 он должен выглядеть примерно так:**

![](https://2542517100-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M27OPqz2FqsvuWyC0Y0%2F-M286GVeyq2bqj83F00Z%2F-M286VoaXzRGTlnnFN3y%2F010.png?alt=media\&token=df87ec80-566b-474f-a1ed-f1c14ca6a7e7)

\
&#x20;Компилируем OpenCV:

```
make -j4
```

{% hint style="success" %}

&#x20;Ключ -j4 означает использовать при компиляции все 4 ядра. При компиляции Raspberry может зависнуть, если это происходит – можно компилировать, используя одно ядро.
{% endhint %}

&#x20;Это займёт больше времени, но позволит избежать ошибок, связанных с параллельной обработкой:

```
make clean
make
```

После успешного завершения компиляции – последний шаг – установка OpenCV:

```
sudo make install
sudo ldconfig
```

&#x20;Если команды выполнились без ошибок – установка OpenCV завершена успешно. После установки можно проверить работу OpenCV с помощью Python:

```
python
 >>> import cv2
 >>> cv2.__version__
 '3.0.0'
```

![](https://2542517100-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M27OPqz2FqsvuWyC0Y0%2F-M287Aq8o_Ku38jQ6g15%2F-M287KhWr5aM-GMoqTGV%2F011.png?alt=media\&token=68591010-1e01-4c5c-afc8-178f6140725e)

&#x20;Если команда выдала версию OpenCV – установка завершена успешно и можно приступать к разработке программ под OpenCV на Python.
