Articles

OpenCV: Instalacja OpenCV-Python w Ubuntu

Cele

W tym poradniku nauczymy się jak skonfigurować OpenCV-Python w systemie Ubuntu. Poniższe kroki zostały przetestowane dla Ubuntu 16.04 i 18.04 (oba 64-bitowe).

OpenCV-Python może zostać zainstalowany w Ubuntu na dwa sposoby:

  • Instalacja z gotowych binariów dostępnych w repozytoriach Ubuntu
  • Kompilacja ze źródła. W tym rozdziale zajmiemy się obiema metodami.

Inną ważną rzeczą są wymagane dodatkowe biblioteki. OpenCV-Python wymaga jedynie Numpy (oprócz innych zależności, które zobaczymy później). Ale w tym tutorialu, używamy również Matplotlib dla łatwego i przyjemnego tworzenia wykresów (co w moim odczuciu jest dużo lepsze w porównaniu do OpenCV). Matplotlib jest opcjonalny, ale bardzo zalecany. Podobnie zobaczymy również IPython, interaktywny terminal Pythona, który również jest wysoce zalecany.

Instalacja OpenCV-Python z gotowych binarek

Ta metoda jest najlepsza, gdy używamy jej tylko do programowania i tworzenia aplikacji OpenCV.

Zainstaluj pakiet python3-opencv następującą komendą w terminalu (jako użytkownik root).

$ sudo apt-get install python3-opencv

Otwórz Python IDLE (lub IPython) i wpisz następujące kody w terminalu Pythona.

import cv2 as cv
print(cv.__version__)

Jeśli wyniki zostaną wydrukowane bez żadnych błędów, gratulacje !!! Zainstalowałeś OpenCV-Python pomyślnie.

To jest dość proste. Ale jest z tym pewien problem. Repozytoria Apt mogą nie zawsze zawierać najnowszą wersję OpenCV. Na przykład, w momencie pisania tego poradnika, repozytorium apt zawiera 2.4.8, podczas gdy najnowsza wersja OpenCV to 3.x. Jeśli chodzi o API Pythona, najnowsza wersja zawsze będzie zawierała o wiele lepsze wsparcie i najnowsze poprawki błędów.

Więc dla uzyskania najnowszych kodów źródłowych preferowana jest kolejna metoda, tj. kompilacja ze źródła. Również w pewnym momencie, jeśli chcesz przyczynić się do rozwoju OpenCV, będziesz tego potrzebował.

Budując OpenCV ze źródła

Kompilacja ze źródła może wydawać się trochę skomplikowana na początku, ale kiedy już ci się to uda, nie ma w tym nic skomplikowanego.

Najpierw zainstalujemy kilka zależności. Niektóre z nich są wymagane, inne opcjonalne. Możesz pominąć opcjonalne zależności, jeśli nie chcesz.

Wymagane zależności

Potrzebujemy CMake do skonfigurowania instalacji, GCC do kompilacji, Python-devel i Numpy do budowania wiązań Pythona itd.

sudo apt-get install cmake
sudo apt-get install gcc g++

aby wspierać python2:

sudo apt-get install python-dev python-numpy

aby wspierać python3:

sudo apt-get install python3-dev python3-numpy

Następnie potrzebujemy obsługi GTK dla funkcji GUI, obsługi kamery (v4l), obsługi mediów (ffmpeg, gstreamer) itp.

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

Do obsługi gtk2:

sudo apt-get install libgtk2.0-dev

aby wesprzeć gtk3:

sudo apt-get install libgtk-3-dev

Optional Dependencies

Powyższe zależności są wystarczające do zainstalowania OpenCV na maszynie Ubuntu. Jednak w zależności od Twoich wymagań, możesz potrzebować kilku dodatkowych zależności. Lista takich opcjonalnych zależności jest podana poniżej. Możesz je zostawić lub zainstalować, Twój wybór 🙂

OpenCV posiada pliki wspierające formaty obrazów takie jak PNG, JPEG, JPEG2000, TIFF, WebP itp. Ale to może być trochę stare. Jeśli chcesz uzyskać najnowsze biblioteki, możesz zainstalować pliki rozwojowe dla bibliotek systemowych tych formatów.

sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libtiff-dev
sudo apt-get install libwebp-dev

Uwaga Jeśli używasz Ubuntu 16.04 możesz również zainstalowaćlibjasper-devaby dodać obsługę formatu JPEG2000 na poziomie systemu.

Pobieranie OpenCV

Aby pobrać najnowsze źródło z Repozytorium GitHub OpenCV. (Jeśli chcesz przyczynić się do rozwoju OpenCV wybierz to. Aby to zrobić, musisz najpierw zainstalować Git)

$ sudo apt-get install git
$ git clone https://github.com/opencv/opencv.git

To utworzy folder „opencv” w bieżącym katalogu. Klonowanie może zająć trochę czasu w zależności od połączenia internetowego.

Teraz otwórz okno terminala i przejdź do pobranego folderu „opencv”. Utwórz nowy folder „build” i przejdź do niego.

$ mkdir build
$ cd build

Konfiguracja i instalacja

Teraz mamy wszystkie wymagane zależności, zainstalujmy OpenCV. Instalacja musi być skonfigurowana za pomocą CMake. Określa on jakie moduły mają być zainstalowane, ścieżkę instalacji, jakie dodatkowe biblioteki mają być użyte, czy dokumentacja i przykłady mają być skompilowane itd. Większość z tych czynności jest wykonywana automatycznie dzięki dobrze skonfigurowanym parametrom domyślnym.

Poniższe polecenie jest zwykle używane do konfiguracji kompilacji bibliotek OpenCV (wykonywane z folderu build):

$ cmake ../

Domyślnie OpenCV zakłada typ kompilacji „Release”, a ścieżka instalacji to „/usr/local”. Dodatkowe informacje na temat opcji CMake można znaleźć w przewodniku kompilacji OpenCV C++:

W wyjściu CMake powinny pojawić się następujące linie (oznaczają one, że Python został poprawnie odnaleziony):

— Python 2:
— Interpreter: /usr/bin/python2.7 (ver 2.7.6)
— Biblioteki: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
— numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
— ścieżka pakietów: lib/python2.7/dist-packages
— Python 3:
— Interpreter: /usr/bin/python3.4 (ver 3.4.3)
— Biblioteki: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
— numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
— ścieżka pakietów: lib/python3.4/dist-packages

Teraz należy zbudować pliki za pomocą polecenia „make” i zainstalować je za pomocą polecenia „make install”.

$ make
# sudo make install

Instalacja dobiegła końca. Wszystkie pliki są zainstalowane w folderze „/usr/local/”. Otwórz terminal i spróbuj zaimportować „cv2”.

import cv2 as cv
print(cv.__version__)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *