Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 40 You must be signed in to star a gist
  • Fork 23 You must be signed in to fork a gist
  • Save willprice/c216fcbeba8d14ad1138 to your computer and use it in GitHub Desktop.
Save willprice/c216fcbeba8d14ad1138 to your computer and use it in GitHub Desktop.
How to install OpenCV 3.1 on Raspbian Jessie (Lite)

Installing OpenCV 3.1 on Raspbian Jessie

Prerequisites

  • Keep your system up to date:
    • $ sudo apt-get update
    • $ sudo apt-get upgrade
    • $ sudo reboot
  • Make sure you've got an internet connection.
  • Make sure you've got
    • wget
    • unzip

Installation

Run the script install-opencv.sh

#!/usr/bin/env bash
OPENCV_VERSION="3.1.0"
OPENCV_URL="https://github.com/Itseez/opencv/archive/${OPENCV_VERSION}.zip"
OPENCV_PACKAGE_NAME="opencv-${OPENCV_VERSION}"
OPENCV_CONTRIB_URL="https://github.com/Itseez/opencv_contrib/archive/${OPENCV_VERSION}.zip"
OPENCV_CONTRIB_PACKAGE_NAME="opencv_contrib-${OPENCV_VERSION}"
PREFIX="${PREFIX:-/usr/local}"
MAKEFLAGS="${MAKEFLAGS:--j 4}"
install_build_dependencies() {
local build_packages="build-essential git cmake pkg-config"
local image_io_packages="libjpeg-dev libtiff5-dev libjasper-dev \
libpng12-dev"
local video_io_packages="libavcodec-dev libavformat-dev \
libswscale-dev libv4l-dev \
libxvidcore-dev libx264-dev"
local gtk_packages="libgtk2.0-dev"
local matrix_packages="libatlas-base-dev gfortran"
local python_dev_packages="python2.7-dev python3-dev python-pip python3-pip"
sudo apt-get install -y $build_packages $image_io_packages $gtk_packages \
$video_io_packages $matrix_packages $python_dev_packages
}
install_global_python_dependencies() {
sudo pip install virtualenv virtualenvwrapper
}
install_local_python_dependences() {
pip install numpy
}
download_packages() {
wget -c -O "${OPENCV_PACKAGE_NAME}.zip" "$OPENCV_URL"
wget -c -O "${OPENCV_CONTRIB_PACKAGE_NAME}.zip" "$OPENCV_CONTRIB_URL"
}
unpack_packages() {
# unzip args:
# -q = quiet
# -n = never overwrite existing files
unzip -q -n "${OPENCV_PACKAGE_NAME}.zip"
unzip -q -n "${OPENCV_CONTRIB_PACKAGE_NAME}.zip"
}
setup_virtualenv() {
export WORKON_HOME="$HOME/.virtualenvs"
source /usr/local/bin/virtualenvwrapper.sh
mkvirtualenv -p python3 cv
workon cv
install_local_python_dependences
}
build() {
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX="$PREFIX" \
-D INSTALL_C_EXMAPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH="$HOME/$OPENCV_CONTRIB_PACKAGE_NAME/modules" \
-D BUILD_EXAMPLES=ON \
..
make ${MAKEFLAGS}
}
install() {
sudo make install
sudo ldconfig
}
log() {
local msg="$1"; shift
local _color_bold_yellow='\e[1;33m'
local _color_reset='\e[0m'
echo -e "\[${_color_bold_yellow}\]${msg}\[${_color_reset}\]"
}
main() {
log "Installing build dependencies..."
install_build_dependencies
log "Downloading OpenCV packages..."
download_packages
log "Unpacking OpenCV packages..."
unpack_packages
log "Installing global python deps..."
install_global_python_dependencies
log "Setting up local python environment..."
setup_virtualenv
log "Building OpenCV..."
cd "$OPENCV_PACKAGE_NAME"
mkdir build
cd build
build
echo "Installing OpenCV..."
install
}
main
@aa110711
Copy link

i try install opencv 3 based on steps provided in pyimagesearch.com

@aa110711
Copy link

but i get error as stated above

@mapodev
Copy link

mapodev commented May 21, 2017

I get this error

[ 49%] Built target opencv_imgcodecs
[ 49%] Linking CXX shared library ../../lib/libopencv_videoio.so
/usr/bin/ld: /usr/local/lib/libx264.a(common.o): relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libx264.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:254: recipe for target 'lib/libopencv_videoio.so.3.2.0' failed
make[2]: *** [lib/libopencv_videoio.so.3.2.0] Error 1
CMakeFiles/Makefile2:5596: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/all' failed
make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
Installing OpenCV...
[  3%] Built target libwebp
[  8%] Built target IlmImf
[ 11%] Built target carotene_objs
[ 12%] Built target tegra_hal
[ 12%] Built target opencv_core_pch_dephelp
[ 13%] Built target pch_Generate_opencv_core
[ 16%] Built target opencv_core
[ 17%] Built target opencv_ts_pch_dephelp
[ 17%] Built target pch_Generate_opencv_ts
[ 17%] Built target opencv_imgproc_pch_dephelp
[ 17%] Built target pch_Generate_opencv_imgproc
[ 21%] Built target opencv_imgproc
[ 21%] Built target opencv_imgcodecs_pch_dephelp
[ 21%] Built target pch_Generate_opencv_imgcodecs
[ 22%] Built target opencv_imgcodecs
[ 22%] Built target opencv_videoio_pch_dephelp
[ 22%] Built target pch_Generate_opencv_videoio
[ 22%] Linking CXX shared library ../../lib/libopencv_videoio.so
/usr/bin/ld: /usr/local/lib/libx264.a(common.o): relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libx264.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:254: recipe for target 'lib/libopencv_videoio.so.3.2.0' failed
make[2]: *** [lib/libopencv_videoio.so.3.2.0] Error 1
CMakeFiles/Makefile2:5596: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/all' failed
make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

@darshisen
Copy link

Guys - If you got stuck here - follow these steps: https://imaginghub.com/projects/144-installing-opencv-3-on-raspberry-pi-3/documentation

Pay careful attention to this path: OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules

Make sure it points to where yours is.

Best,
Darshi

@avinashpatel57
Copy link

Nice script. It installed opencv for me without any error. Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment