OpenCV 3.0 Python-opas

Esittely ja yleiskatsaus

Tämä dokumentti sisältää ohjeet OpenCV:n uusimman version (versio 3) ja Python-sidosten asentamiseen ja siirtymiseen. Joidenkin API-muutosten lisäksi Python-rajapintaan on tehty muutoksia (esim. cv2.cv:n poistaminen), jotka saattavat vaatia muutoksia olemassa olevaan koodiin, jotta se toimisi cv2-moduulin uuden version kanssa. Asennuksen jälkeen katso seuraavalta sivulta, Siirtyminen & Muutokset, lisätietoja moduuliin tehdyistä muutoksista ja apua olemassa olevan Python-koodin siirtämiseen uuteen versioon.

Tällä sivulla käsitellään OpenCV 3:n asentamista Windowsiin (käyttäen valmiita binäärejä) ja Linuxiin (käännettynä lähdekoodista), mukaan lukien Python-rajapinta (cv2-moduuli). OpenCV:n voi ladata viralliselta OpenCV-sivustolta. Huomaa, että tämä opas on kirjoitettu OpenCV:n versioon 3.1.0 perustuen. Asennuksen jälkeen on suositeltavaa tarkistaa, mitä OpenCV-versiota Python käyttää:

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

Huomaa, että vaikka OpenCV 3 on uusin versio, moduulin nimi on sopimuksen mukaan edelleen cv2.

Asennus Windowsissa (valmiit binäärit)

Esivalmistettujen binääritiedostojen käyttäminen on nopein tapa saada Python OpenCV-ympäristö toimimaan Windowsissa. Tällä hetkellä vain Python 2 -versio cv2-moduulista on rakennettu ja sisällytetty uusimpaan Windows-versioon. Tuki Python 3:lle (samoin kuin muiden ei-standardien ominaisuuksien/moduulien lisääminen) edellyttää kääntämistä lähdekoodista – katso lisätietoja OpenCV:n virallisesta dokumentaatiosta.

OpenCV:n ja Pythonin lataaminen

Aloittaaksesi lataa OpenCV for Windows (versio 3.1, opencv-3.1.0.exe) ja pura se haluamaasi hakemistoon. Windows-rakennus sisältää sekä 32-bittisen että 64-bittisen moduulin Python 2.7:lle.

Voit ennen jatkamista varmistaa, että sinulla on toimiva Python 2.7 -asennus, jonka voit ladata Pythonin verkkosivuilta. Tämä opas testattiin käyttäen Python 2.7.9:ää (x86-asennusohjelma / x64-asennusohjelma). Asennuksen yhteydessä on suositeltavaa, että annat asennusohjelman lisätä Pythonin PATH-ympäristömuuttujaan, jotta voit suorittaa python ja pip komentoriviltä.

Moduuliriippuvuuksien asentaminen

Pythonin OpenCV cv2-moduuli vaatii sekä NumPy– että SciPy-pinon. Saadaksesi tämän, varmista ensin, että sinulla on toimiva python-ympäristö ja että pip on asennettu (jos ei ole, käytä yllä olevia linkkejä ja varmista, että Python-kansio on PATH-muuttujassasi).

Christoph Gohlke tarjoaa tällä hetkellä joitakin (epävirallisia) valmiita Python-paketteja Windowsille, mukaan lukien NumPy ja SciPy. Lataa uusimmat vakaat versiot NumPy:stä ja SciPy:stä ja asenna ne kutsumalla pip install .whl komentoriviltä. Huomaa, että sinun kannattaa ladata Python-ympäristöäsi (tässä tapauksessa 2.7) ja sanan pituutta vastaava versio. Esimerkiksi 32-bittisissä järjestelmissä/tulkissa:

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

Ja 64-bittisissä järjestelmissä/tulkissa:

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

Asennuksen jälkeen sinun pitäisi pystyä ajamaan import numpy ja import scipy Python-tulkista tarkistaaksesi, että moduulit asennettiin oikein. Voit tarkistaa, mitkä NumPy- ja SciPy-versiot on asennettu kohdista numpy.__version__ ja scipy.__version__.

Python-OpenCV-moduulin asentaminen

Viimeiseksi meidän on kopioitava OpenCV-moduuli paikallisiin Python-paketteihin. Siirry opencv-3.0.0-rc1.exe:stä puretuista tiedostoista kansioon opencv\build\python.7\ ja avaa joko kansio x86\ (32-bittisille) tai x64\ (64-bittisille). Kummassakin on tiedosto cv2.pyd.

Kopioi cv2.pyd suoraan Python-asennuksesi Lib\site-packages\-hakemistoon. Useimmilla käyttäjillä tämä löytyy osoitteesta:

C:\Python27\Lib\site-packages 

Varmista lopuksi, että OpenCV:n .dll-tiedostot ovat jossakin järjestelmäsi %PATH%:ssä, erityisesti videotiedostojen lataamiseen tarvittava opencv_ffmpeg310.dll-tiedosto (tai opencv_ffmpeg310_64.dll 64-bittisissä järjestelmissä opencv_ffmpeg310_64.dll).

Jatka Asennuksen tarkistaminen -osioon varmistaaksesi, että kaikki on asennettu oikein ja että OpenCV:n uusi versio on käytössä. Muista myös tutustua seuraavaan sivuun, Siirtyminen & Muutokset, saadaksesi lisätietoja moduuliin tehdyistä muutoksista ja olemassa olevan koodin päivittämisestä.

Asennus Linuxissa (kääntäminen lähdekoodista)

Vaikka tämä opas on kirjoitettu Ubuntu 12.04/14.04:lle ja muille muunnoksille (esim. Xubuntu/Lubuntu/Kubuntu), prosessin pitäisi olla pitkälti sama myös muissa versioissa, samoin kuin samankaltaisissa Debianin kaltaisissa Linux-jakeluissa. Kiinnitä huomiota jokaisen komennon tulosteeseen varmistaaksesi, että kaikki toimi oikein, ja jos rakentamisprosessin aikana ilmenee ongelmia, katso tämän dokumentin lopusta mahdolliset lieventämiskeinot

OpenCV:n lataaminen

Aloittaaksesi lataa OpenCV for Linux (versio 3.1.0, opencv-3.1.0.zip) ja pura se haluamaasi hakemistoon (esim. ~/opencv-src). Luo build-kansio sen kansion sisälle, johon arkisto purettiin (hakemisto, joka sisältää CMakeLists.txt-tiedoston), ja avaa siellä terminaali-istunto. Esimerkiksi:

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

Suorita kaikki seuraavat komennot itse build-alakansiosta, jolloin käännettävät tiedostot sijoitetaan sinne.

Kehitysriippuvuuksien asentaminen

OpenCV:n kääntämiseksi on varmistettava, että tarvittavat riippuvuudet ovat saatavilla, mukaan lukien itse rakennustyökalut. Voimme hankkia tarvittavat käyttämällä apt Ubuntussa, mutta varmista ensin, että pakettiluettelo on ajan tasalla ajamalla apt-get update. Suorita seuraavaksi seuraavat komennot tarvittavien pakettien hankkimiseksi (alla on yksirivinen luettelo kaikista):

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

Yksirivisenä:

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

Huomaa, että OpenCV:n lisämoduuleja/ominaisuuksia (esim. GPU/CUDA-tuki tai Python 3 -moduuli) varten sinun on ladattava myös kyseisten kirjastojen vastaavat kehitys-/SDK-paketit. Yllä luetellut riippuvuudet kattavat vain itse OpenCV:n ja Python 2.7 cv2 -moduulin rakentamisen.

OpenCV:n kääntäminen ja asentaminen

Nyt kun meillä on vaaditut rakentamisriippuvuudet, suorita ajo cmake (jälleen kerran luomastamme build/-hakemistosta) luodaksesi Makefile-tiedoston OpenCV:n rakentamista varten:

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

Jos virheitä ilmaantuu, varmistu siitä, että olet imuroinut kaikki vaadittavat paketit – ulostulon avulla voit jäljittää, mitkä paketit puuttuvat. Varmistaaksesi, että Python-moduuli rakennetaan, sinun pitäisi nähdä python2 konfiguroitujen moduulien luettelossa suoritettuasi komennon cmake:

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

Jos et näe python2-moduulia listattuna “Rakennetaan”-luettelossa, tarkista, että sinulla on asennettuna oikeat Python-kehityspaketit, poista kaikki tiedostot kansiosta build/ ja yritä suorittaa komento cmake uudelleen.

Voit nyt rakentaa OpenCV:n (ja Python-moduulin) komennolla make ja asentaa sen järjestelmäämme:

makesudo make install

Varmista, että rakentaminen onnistui make:n kutsumisen jälkeen, ja tarkista tuloste ennen asennusta. Jos törmäät rakentamisongelmiin/virheisiin, varmista jälleen, että sinulla on kaikki tarvittavat riippuvuudet ja otsikkotiedostot järjestelmässäsi. Jos OpenCV:ssä itsessään on todellisia rakentamisongelmia, katso alla olevasta Linuxin rakentamisongelmat -osiosta joitakin mahdollisia kiertoteitä.

Asennettaessa OpenCV 3.0-rc1:tä Ubuntu 12.04:ään törmäsin rakentamisvirheisiin, jotka liittyivät joihinkin puuttuviin codec #define-merkintöihin. Kuten mainittu, vaiheet tähän ovat yksityiskohtaisesti alla, jos törmäät samaan ongelmaan (ongelman pitäisi olla ratkaistu versiossa 3.1.0 tai uudemmissa). Ubuntu 14.04:n ja sitä uudempien pitäisi rakentaa onnistuneesti ilman muutoksia.

Jos rakentaminen onnistui, mutta et voi import cv2 Python-komentotulkista ajettuasi make install, voit asentaa moduulin manuaalisesti kopioimalla juuri rakentamamme cv2.so-tiedoston build/lib/-kansiosta /usr/local/lib/python2.7/dist-packages/-kansioon. build/-kansiosta tämä voidaan tehdä seuraavasti:

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

Tämän vaiheen jälkeen cv2-moduuli on asennettu, ja se voidaan nyt tuoda Python-ympäristöösi. Jatka asennuksen tarkistaminen -osioon varmistaaksesi, että kaikki asennettiin oikein ja mikä tärkeintä, että Python käyttää oikeaa OpenCV-versiota. Voit myös tarkistaa seuraavalta sivulta, Migration & Changes, lisätietoja cv2-moduulin muutoksista ja siitä, mitä muutoksia olemassa olevaan koodiin on tehtävä, jotta se toimisi päivitetyn moduulin kanssa.

Asennuksen tarkistaminen

Kuten aiemmin mainittiin, voit tarkistaa, että cv2-moduuli on asennettu oikein, suorittamalla seuraavan komennon Pythonin komentotulkissa:

import cv2print cv2.__version__

Jos tulostuu oikea versio-merkkijono (3.0.0-rc1 tai uudempi, jos olet käyttänyt uudempaa versiota), kaikki on asennettu tässä vaiheessa oikein!

Huomaa, että itse cv2-moduulihierarkiaan on tehty joitain suuria muutoksia, ja OpenCV 2.4.x:llä kirjoitetut Python-ohjelmat eivät ehkä enää toimi oikein. Katso seuraavasta osiosta, Siirtyminen & Muutokset, lisätietoja muutoksista ja siitä, miten ohjelmia voi muokata muutosten huomioon ottamiseksi.

Linuxin rakentamisongelmat

Joissain järjestelmissä saatat törmätä ongelmiin itse OpenCV:n kääntämisessä, riippuen siitä, mitä paketteja on saatavilla. Jos oikeat otsikkotiedostot ovat saatavilla, mutta rakentamisongelmia ilmenee silti, yritä katsoa, onko ongelmaan olemassa alla olevia kiertoteitä.

Undefined AV_CODEC_ID_... in ffmpeg_codecs.hpp

Jos törmäät ongelmaan, jossa rakentamisvirheet johtuvat siitä, että tiettyjä koodekkeja ei ole määritetty, voit ladata täältä uudemman version ffmpeg_codecs.hpp:stä ja korvata sen lataamassasi/poimimassasi lähdekoodissa kansiossa modules/videoio/src/.

Vaihtoehtoisesti voit ilmoittaa ne manuaalisesti muokkaamalla itse ffmpeg_codecs.hpp-tiedostoa lisäämällä puuttuvan koodekkimerkinnän H263I ja nimeämällä WNV uudelleen WNV1:ksi. Näet, mitä muutoksia on tehtävä katsomalla tätä toimitusta OpenCV:n GitHub-projektista.

Kun tiedosto on päivitetty, voit kutsua make uudelleen build/-kansiosta, ja OpenCV:n pitäisi nyt lopettaa kääntäminen ilman virheitä.

Vastaa

Sähköpostiosoitettasi ei julkaista.