Raspberry Pi и OpenCV


Предыдущая | Следующая

OpenCV (Open Computer Vision, библиотека "компьютерного зрения" с открытым исходным кодом) — предоставляет нам набор типов данных и численных алгорит­мов для обработки изображений алгоритмами "компьютерного зрения". OpenCV написана на языке высокого уровня (C/C++) и содержит алгоритмы для интерпре­тации изображений, калибровки камеры по эталону, устранения оптических иска­жений, определения сходства, анализа перемещения объекта, определения формы объекта и слежения за объектом, 3D-реконструкции, сегментации объекта, распо­знавания жестов и пр.

Эта библиотека очень популярна из-за своей открытости и возможности бесплатно использовать ее как в учебных, так и коммерческих целях.

Для установки пакета opencv на устройство Raspberry Pi под управлением дистрибутива Raspbian выполним следующую команду:

sudo apt-get install libopencv-dev python-opencv

По этой команде будет установлена версия 2.3.1 пакета opencv. А пакет python- opencv пригодится нам для написания программ на языке Python с использованием opencv.

Итак, напишем первую программу на Python с использованием библиотеки opencv. Создадим для наших программ каталог prg-opencv\helloworld и в нем файл hello.py:

cd ~ 
mkdir prg-opencv 
cd prg-opencv 
mkdir helloworld 
touch hello.py

И занесем в файл hello.py содержимое листинга 4.11.

Листинг 4.11. Файл hello.py

#!/usr/bin/python 
import cv2 
import sys 
PATH="/home/pi/prg-opencv/helloworld/" 
if len(sys.argv) != 2: 
    sys.exit("Expecting a single image file argument") 
filename = sys.argv 
image = cv2.imread((PATH+filename),0) 
print image.shape 
image_small = cv2.resize(image, (600, 400)) 
textColor = (0, 0, 255) # red 
cv2.putText(image_small, "Hello World!!!", (200, 200), 
        cv2.FONT_HERSHEY_PLAIN, 3.0, textColor, 
        thickness=4, linetype=cv2.CV_AA) 
cv2.imshow('Hello World GUI', image_small) 
cv2.waitKey() 
cv2.destroyAllWindows() 

Запускаем скрипт hello.py на выполнение:

python /home/pi/prg-opencv/helloworld/hello.py img1.png

Результат выполнения представлен на рис. 4.41.