[ solved ] Opencv forrásból telepítve nem elérhető

Ezt https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/ majd minden lépését követve sikerül feltelepítenem forrásból az OpenCV 4- et.

Nem a virtualis környezet alá telepítettem, hanem a /home/pi alá. 

pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Dec 20 2019, 18:57:59) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
>>>

mit kell tennem, hogy a frissen telepített opencv elérhető legyen ?

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux

Hozzászólások

Szerkesztve: 2020. 05. 14., cs - 06:33

Ha nem standard helyre tetted, akkor a PYTHONPATH-t be kell állítani.

Ha jól láttam, akkor /home/pi alatt vagy. Ha van ott egy __init__.py fájl, akkor nyertél.

Ha nem, akkor meg kellene keresni valahol. Lehet több is. Azok közül a gyökérhez közelebbi kell. ( OpenCVt még nem láttam). Azt a könyvtárat kellene felvenne a PYTONPATH-ba, valahogy így:

 export PYTHONPATH=/home/pi

Először teszteld le, hogy így jó-e az python import.

itt is ugyanaz a hiba mint az előző szálban: nem vagy benne a python virtualenv-ben.

Azt kell megérteni hogy a virtualenv beállít egy csomó olyan keresési utat ami rá egyedül jellemző.

Tehát ha a leírás szerint a "cv" nevű virtualenv-be fordítottad és installáltad bele az opencv-t, akkor az onnan lesz elérhető csak.

Tehát: 

$ cd ~
$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'4.1.1'
>>>

Gábriel Ákos

Direkt ki akarom hagyni a virtualenv játékot, mert a "másik szálban" már igen hosszan leírtam, hogy a GPIO virtualenv alatt nem működik. Ezért most, itt, egy új, natív telepítést csinálok. A pip install megoldás működött, de még mindig teljesítmény okok miatt, forrásból telepítek, mert az gyorsabb és több szolgáltatás érhető el. ( ha működik )

--
üdv: virtualm

pi@raspberrypi:~ $ ls -l /home/pi/Makefile*
ls: '/home/pi/Makefile*' nem érhető el: Nincs ilyen fájl vagy könyvtár

A forditás, telepítés így zajlott:
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libfontconfig1-dev libcairo2-dev
sudo apt-get install libgdk-pixbuf2.0-dev libpango1.0-dev
sudo apt-get install libgtk2.0-dev libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103
sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
sudo apt-get install python3-dev
pip install "picamera[array]"
pip install --upgrade pip
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.1.1.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.1.1.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.1.1 opencv
mv opencv_contrib-4.1.1 opencv_contrib
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE     -D CMAKE_INSTALL_PREFIX=/usr/local     -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules     -D ENABLE_NEON=ON     -D ENABLE_VFPV3=ON     -D BUILD_TESTS=OFF     -D INSTALL_PYTHON_EXAMPLES=OFF     -D OPENCV_ENABLE_NONFREE=ON     -D CMAKE_SHARED_LINKER_FLAGS=-latomic     -D BUILD_EXAMPLES=OFF ..
make -j4
cd ~
python3

Ákos, irtam itt üzenetet.

--
üdv: virtualm

Az eredeti telepítésnél kiadtam, de lehet, hogy rossz helyen. futok ujra egy kört mert mot, utólag csinálva hibát dob, akkor hiba nélkül lefutott.

pi@raspberrypi:~ $ cd opencv
pi@raspberrypi:~/opencv $ cd build
pi@raspberrypi:~/opencv/build $ sudo make install
make: /usr/bin/cmake: Command not found
make: *** [Makefile:1548: cmake_check_build_system] Error 127
pi@raspberrypi:~/opencv/build $ 
 

--
üdv: virtualm

Köszönöm a segítséget. Újra, harmadjára is nekifutottam és sikerült virtualenv nélküli natív telepítés a korábbi ötleteid alapján.

pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Dec 20 2019, 18:57:59) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.3.0-dev'
>>> 
 

--
üdv: virtualm

hacsak nem az a cel, hogy ket opencv-d is legyen, hanem a friss 4-esre volt szukseged, akkor a a bullseye openvc-jet ujrabuildelve busteren (ha  jol latom a build-depbe nincs semmi verzio megkotes), kaptal volna oda valo deb csomagokat. ha pi-n buildelni maceras, akkor x86-on is lehet (qemu-user-static)

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

nem annyira nehez, mint sokan gondoljak. debian package rebuild egesz jol van doksizva. es megfelelo kulcsszavakkal jol keresheto. A pi image "emulaciora" is van leiras. (persze nem jessie imagevel kell csinalni). 

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Most már nem macerás a dolog, mert le is dokumentáltam, ha újra kéne és mentést is csináltam róla. Ezzel kapcsolatban a kérdésem az, hogy ha az opencv 20- 30- ot gyorsul, mert helyben fordított, optimalizált forrásból települt, akkor ezt python3- al és más programokkal is meglehet csinálni? Hogyan ?

--
üdv: virtualm

Itt van leírás, ennek alapján tudsz fordítani. Ha ezt akarod követni, akkor egy üres Linuxszal kel indulnod, és kézzel telepítgetni, a mostani állapotod felejtős.

Ha tuningolni akarsz, akkor az hosszú idő lehet, mire optimumot érsz el. De sokat lehet tenulni belőle :)