3. Installing OpenCV on Raspberry pi 4 - HaroldSP/Harold GitHub Wiki
22/05/2020 UPDATE
Decided to rebuild OpenCV due to appearing errors while using ROS
Followed this guide, except for installing virtualenv I added these lines to .bashrc:
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_ENV_BIN_DIR=bin # <== This line fixed it for me
Sym-link your OpenCV 4 on the Raspberry Pi
In my case was:
cd /usr/local/lib/python3.7/site-packages/cv2/python-3.7/
sudo mv cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so
cd ~/.virtualenvs/cv/lib/python3.7/site-packages/
ln -s /usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.so cv2.so
Start (older version of that article)
sudo raspi-config
Advanced Options → Expand Filesystem. reboot.
Установка требуемых пакетов:
sudo apt-get install cmake cmake-curses-gui libgtk2.0-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev
sudo apt-get install gfortran libatlas-base-dev libx264-dev libxvidcore-dev
sudo apt-get install pkg-config libgtk2.0-dev libzbar0
If not previously installed:
pip3 install imutils
pip3 install pyzbar
if needed: Увеличение размера файла подкачки
sudo nano /etc/dphys-swapfile
Находим строчку CONF_SWAPSIZE=100 И увеличиваем число например до 1024. Перезапускаем службу.
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
Создаем папку opencv в домашнем каталоге и переходим в нее
cd /home/pi
mkdir opencv
cd opencv
Скачиваем архивы с исходниками с помощью утилиты wget
wget https://github.com/opencv/opencv/archive/4.3.0.zip -O opencv_source.zip
wget https://github.com/opencv/opencv_contrib/archive/4.3.0.zip -O opencv_contrib.zip
Распаковываем архивы.
unzip opencv_source.zip
unzip opencv_contrib.zip
И теперь можно их удалить
rm opencv_source.zip
rm opencv_contrib.zip
Теперь переходим в папку opencv-4.3.0 и создаем в ней папку build
cd opencv-4.3.0
mkdir build
cd build
Настраиваем параметры сборки. Обратите внимание на путь до дополнительных модулей!
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=OFF \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv/opencv_contrib-4.3.0/modules \ -D BUILD_EXAMPLES=ON \ -D BUILD_DOCS=ON ..
Компиляция в 4 потока (works on pi 4 with active cooling perfectly)
make -j4
Компиляция в 1 поток
make -j1
Установка библиотеки
sudo make install
Настройка динамического связывания
sudo ldconfig
Try it:
python3
import cv2
cv2.__version__
В результате, библиотека должна выдать номер версии, которую вы установили.
DON'T:
pip3 install opencv-python
If not helping anything else:
sudo apt-get install python3-opencv
Errors
ImportError: libQtGui.so.4: cannot open shared object file: No such file or directory
do:
sudo apt-get install -y libqtgui4
sudo apt install libqt4-test
ImportError:
ImportError: /home/pi/.local/lib/python3.7/site-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so:
undefined symbol: __atomic_fetch_add_8
Add to bashrc:
export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1
save&exit
source .bashrc