OpenCV 3.0 Python Guide

Introducere și prezentare generală

Acest document conține instrucțiuni pentru instalarea și migrarea la cea mai recentă versiune a OpenCV (versiunea 3) și la legăturile Python. În plus față de unele modificări ale API, există, de asemenea, modificări ale interfeței Python (de exemplu, eliminarea cv2.cv) care pot necesita modificări în codul existent pentru a funcționa cu noua versiune a modulului cv2. După instalare, consultați pagina următoare, Migration & Changes, pentru detalii referitoare la modificările aduse modulului și pentru ajutor la migrarea codului Python existent la noua versiune.

Această pagină acoperă instalarea OpenCV 3 pe Windows (folosind binarele preinstalate) și Linux (compilate din sursă), inclusiv interfața Python (modulul cv2). OpenCV poate fi descărcat de pe site-ul oficial OpenCV. Rețineți că acest ghid este scris pe baza versiunii 3.1.0 a OpenCV. După instalare, se recomandă să puteți verifica versiunea de OpenCV pe care o folosește Python:

import cv2print cv2.__version__# Should print 3.0.0-rc1 or newer.

Rețineți că, deși OpenCV 3 este cea mai recentă versiune, prin convenție, modulul se numește în continuare cv2.

Instalare pe Windows (binare preinstalate)

Utilizarea binarelor preinstalate este cel mai rapid mod de a obține un mediu Python OpenCV și de a funcționa pe Windows. În prezent, doar versiunea Python 2 a modulului cv2 este construită și inclusă în cea mai recentă versiune pentru Windows. Suportul pentru Python 3 (precum și adăugarea altor caracteristici/module non-standard), necesită compilarea din sursă – consultați documentația oficială OpenCV pentru detalii.

Descărcarea OpenCV și Python

Pentru a începe, descărcați OpenCV pentru Windows (versiunea 3.1, opencv-3.1.0.exe), și extrageți-l într-un director la alegere. Construcția pentru Windows include atât un modul pe 32 de biți, cât și unul pe 64 de biți pentru Python 2.7.

Înainte de a continua, asigurați-vă că aveți o instalare Python 2.7 funcțională, care poate fi descărcată de pe site-ul Python. Acest ghid a fost testat folosind Python 2.7.9 (x86 installer / x64 installer). La instalare, se recomandă să permiteți programului de instalare să adauge Python la variabila de mediu PATH, astfel încât să puteți rula python și pip de la o linie de comandă.

Instalarea dependențelor modulelor

Modulul Python OpenCV cv2 necesită atât stiva NumPy, cât și SciPy. Pentru a obține acest lucru, asigurați-vă mai întâi că aveți un mediu python funcțional și că aveți instalat pip (dacă nu, folosiți legăturile de mai sus și asigurați-vă că dosarul Python se află în variabila PATH).

Christoph Gohlke oferă în prezent câteva pachete Python preinstalate (neoficiale) pentru Windows, inclusiv NumPy și SciPy. Descărcați cele mai recente versiuni stabile ale NumPy și SciPy și instalați-le prin apelarea pip install .whl dintr-un prompt de comandă. Rețineți că trebuie să descărcați versiunea corespunzătoare mediului Python (2.7 în acest caz) și lungimii cuvântului. De exemplu, pe sisteme/interprete pe 32 de biți:

pip install numpy-1.9.2+mkl-cp27-none-win32.whlpip install scipy-0.15.1-cp27-none-win32.whl

Și pentru sisteme/interprete pe 64 de biți:

pip install numpy-1.9.2+mkl-cp27-none-win_amd64.whlpip install scipy-0.15.1-cp27-none-win_amd64.whl

După instalare, ar trebui să puteți rula import numpy și import scipy dintr-un interpretor Python pentru a verifica dacă modulele au fost instalate corect. Puteți verifica ce versiuni de NumPy și SciPy sunt instalate din numpy.__version__ și, respectiv, scipy.__version__.

Instalarea modulului Python-OpenCV

În cele din urmă, trebuie să copiem modulul OpenCV în pachetele Python locale. În fișierele extrase din opencv-3.0.0-rc1.exe, mergeți la folderul opencv\build\python.7\ și deschideți fie folderul x86\ (pentru 32 de biți), fie x64\ (pentru 64 de biți). În fiecare, va exista un fișier cv2.pyd.

Copiați cv2.pyd direct în directorul Lib\site-packages\ al instalației dumneavoastră Python. Pentru majoritatea utilizatorilor, acesta se va găsi la:

C:\Python27\Lib\site-packages 

În cele din urmă, asigurați-vă că fișierele OpenCV .dll se află undeva în directorul %PATH% al sistemului dumneavoastră, în special fișierul opencv_ffmpeg310.dll (sau opencv_ffmpeg310_64.dll pentru sistemele pe 64 de biți) necesar pentru încărcarea fișierelor video.

Continuați cu secțiunea Verificarea instalării pentru a vă asigura că totul a fost instalat corect și că se utilizează noua versiune de OpenCV. De asemenea, nu uitați să consultați următoarea pagină, Migration & Changes, pentru detalii despre modificările aduse modulului și actualizarea codului existent.

Installing on Linux (compiling from source)

Deși acest ghid este scris pentru Ubuntu 12.04/14.04 și alte variante (de exemplu, Xubuntu/Lubuntu/Kubuntu), procesul ar trebui să fie în mare parte același și pe alte versiuni, precum și pe distribuții Linux similare cu Debian. Acordați atenție ieșirii fiecărei comenzi pentru a vă asigura că totul a funcționat corect, iar dacă există probleme în timpul procesului de compilare, consultați partea de jos a acestui document pentru posibile atenuări

Descărcarea OpenCV

Pentru a începe, descărcați OpenCV pentru Linux (versiunea 3.1.0, opencv-3.1.0.zip) și extrageți-l într-un director la alegere (de exemplu, ~/opencv-src). Creați un dosar build în interiorul dosarului în care a fost extrasă arhiva (directorul care conține fișierul CMakeLists.txt) și deschideți acolo o sesiune de terminal. De exemplu:

# Assuming the files were extracted to ~/opencv-src/...cd ~/opencv-srcmkdir buildcd build

Executați toate comenzile următoare chiar din subdirectorul build, astfel încât fișierele compilate vor fi plasate acolo.

Instalarea dependențelor de compilare

Pentru a compila OpenCV, trebuie să ne asigurăm că dependențele necesare sunt disponibile, inclusiv instrumentele de compilare propriu-zise. Le putem obține pe cele necesare folosind apt pe Ubuntu, dar mai întâi, asigurați-vă că lista de pachete este actualizată rulând apt-get update. Apoi, executați următoarele comenzi pentru a obține pachetele necesare (a se vedea mai jos pentru o listă pe o singură linie a tuturor):

sudo apt-get install cmake build-essential pkg-configsudo apt-get install libgtk2.0-dev libtbb-devsudo apt-get install python-dev python-numpy python-scipysudo apt-get install libjasper-dev libjpeg-dev libpng-dev libtiff-dev sudo apt-get install libavcodec-dev libavutil-dev libavformat-dev libswscale-devsudo apt-get install libdc1394-22-dev libv4l-dev

Într-o singură linie:

sudo apt-get install cmake build-essential pkg-config libgtk2.0-dev libtbb-dev python-dev python-numpy python-scipy libjasper-dev libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libdc1394-22-dev libv4l-dev

Rețineți că pentru modulele/caracteristicile OpenCV suplimentare (de exemplu, suportul GPU/CUDA, sau modulul Python 3), va trebui să descărcați și pachetele de dezvoltare/SDK respective pentru aceste biblioteci. Dependențele enumerate mai sus acoperă doar construirea OpenCV în sine și a modulului Python 2.7 cv2.

Compilarea și instalarea OpenCV

Acum că avem dependențele de construire necesare, rulați cmake (din nou, în directorul build/ pe care l-am creat) pentru a genera fișierul Makefile pentru a construi OpenCV:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

Dacă apar erori, asigurați-vă că ați descărcat toate pachetele necesare – rezultatul ar trebui să vă ajute să depistați ce lipsește. Pentru a vă asigura că modulul Python va fi construit, ar trebui să vedeți python2 în lista modulelor configurate după rularea cmake:

-- Linker flags (Release):-- Linker flags (Debug):-- Precompiled headers: YES---- OpenCV modules:-- To be built: hal core flann imgproc ml python2

Dacă nu vedeți modulul python2 listat, în lista “To be built”, verificați dacă aveți instalate pachetele de dezvoltare Python corespunzătoare, eliminați toate fișierele din folderul build/ și încercați să rulați din nou comanda cmake.

Acum, putem construi OpenCV (și modulul Python) folosind make și îl putem instala pe sistemul nostru:

makesudo make install

Asigurați-vă că compilarea a avut succes după apelarea make și verificați rezultatul înainte de instalare. Dacă întâmpinați probleme/erori de compilare, asigurați-vă din nou că aveți toate dependențele și fișierele antet necesare pe sistem. Dacă există probleme reale de compilare cu OpenCV în sine, consultați secțiunea Probleme de compilare Linux de mai jos pentru unele posibile soluții de rezolvare.

Când am instalat OpenCV 3.0-rc1 pe Ubuntu 12.04, am întâmpinat erori de compilare cu privire la unele intrări lipsă ale codecului #define. După cum am menționat, pașii pentru a face acest lucru sunt detaliați mai jos în cazul în care vă confruntați cu aceeași problemă (problema ar trebui să fie rezolvată în versiunea 3.1.0 și mai sus). Ubuntu 14.04 și versiunile superioare ar trebui să se compileze cu succes fără a necesita modificări.

Dacă compilarea a avut succes, dar nu puteți import cv2 dintr-un shell Python după ce ați rulat make install, puteți instala manual modulul copiind fișierul cv2.so pe care tocmai l-am compilat în folderul build/lib/ în /usr/local/lib/python2.7/dist-packages/. Din folderul build/, acest lucru se poate face prin:

sudo cp lib/cv2.so /usr/local/lib/python2.7/dist-packages/

După acest pas, modulul cv2 este instalat și poate fi acum importat de mediul Python. Continuați la secțiunea Verificarea instalării pentru a vă asigura că totul a fost instalat corect și, mai important, că versiunea corectă de OpenCV este utilizată de Python. De asemenea, puteți consulta pagina următoare, Migration & Changes, pentru detalii despre modificările aduse modulului cv2 și ce modificări trebuie aduse codului existent pentru a funcționa cu modulul actualizat.

Verificarea instalării

După cum am menționat anterior, puteți verifica dacă modulul cv2 a fost instalat corect executând următoarele într-un shell Python:

import cv2print cv2.__version__

Dacă se tipărește șirul de versiuni corect (3.0.0-rc1 sau mai nou dacă ați folosit o versiune mai recentă), totul este instalat corect în acest punct!

Rețineți că există unele schimbări majore în însăși ierarhia modulelor cv2, iar programele Python scrise cu OpenCV 2.4.x în minte s-ar putea să nu mai funcționeze corect. Consultați următoarea secțiune, Modificări de migrare & pentru detalii despre modificări și cum să modificați programele pentru a face față schimbărilor.

Probleme de compilare Linux

Pe unele sisteme este posibil să întâmpinați probleme la compilarea OpenCV în sine, în funcție de pachetele care sunt disponibile. Dacă fișierele de antet corespunzătoare sunt disponibile, dar problemele de compilare apar în continuare, încercați să vedeți dacă există soluții de rezolvare mai jos pentru problemă.

Undefined AV_CODEC_ID_... in ffmpeg_codecs.hpp

Dacă vă confruntați cu o problemă în care erorile de compilare sunt cauzate de faptul că anumite codecuri nu sunt definite, puteți descărca o versiune mai recentă a ffmpeg_codecs.hpp de aici și o puteți înlocui în codul sursă pe care l-ați descărcat/extras în folderul modules/videoio/src/.

Alternativ, le puteți declara manual prin editarea fișierului ffmpeg_codecs.hpp însuși, adăugând intrarea codecului lipsă pentru H263I și redenumind WNV în WNV1. Puteți vedea ce modificări trebuie făcute vizualizând acest commit din proiectul OpenCV GitHub.

După ce fișierul este actualizat, puteți apela din nou make din dosarul build/, iar OpenCV ar trebui să termine compilarea fără erori acum.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.