Installing OpenCV3 with Python3 on a RaspberryPi

Summary of instructions for creating a fresh install of OpenCV3 and Python 3 on a RaspberryPi care of Adrian Rosebrock’s  pyimagesearch website. Base code is from disk image of Raspbian-Jessie with Pixel GUI (April 2017).

// raspi config opencv3

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update

sudo reboot

sudo apt-get install netatalk

// configure netatalk if necessary –

// sudo /etc/init.d/netatalk stop
// sudo nano /etc/netatalk/AppleVolumes.default

// eg add to mount external discs

// ~/ “Home Directory”
// /media “Media”
// /mnt “Mount”
sudo apt-get install build-essential git cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-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 libgtk2.0-dev

sudo apt-get install libatlas-base-dev gfortran

sudo apt-get install python2.7-dev python3-dev

cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.0.0.zip
unzip opencv.zip

wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.0.0.zip
unzip opencv_contrib.zip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

sudo pip install virtualenv virtualenvwrapper

sudo rm -rf ~/.cache/pip

// add to ~/.profile – sudo nano ~/.profile

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

//

source ~/.profile

mkvirtualenv cv -p python3

source ~/.profile
workon cv
pip install numpy

workon cv
cd ~/opencv-3.0.0/
mkdir build
cd build

make -j4
sudo make install
sudo ldconfig

// check name of the python package :
ls /usr/local/lib/python3.4/site-packages/
// gives ‘cv2.cpython-34m.so’
// rename to standar python dev package
cd /usr/local/lib/python3.4/site-packages/
sudo mv cv2.cpython-34m.so cv2.so

// add symlink
cd ~/.virtualenvs/cv/lib/python3.4/site-packages/
ln -s /usr/local/lib/python3.4/site-packages/cv2.so cv2.so