====== opencv install ======
===== android studio =====
[[https://stackoverflow.com/questions/50433813/how-to-add-opencv-lib-to-as3-1-2-and-ndk-17-0|integrate opencv in android studio project]]
===== linux =====
prereq: ubuntu 16:04 or 18:04
sudo apt-get install -y build-essential cmake
# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
sudo apt-get install -y libvtk6-dev libgtkglext1-dev
# GUI qt
# sudo apt install -y qt5-default
# Media I/O:
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev
# Video I/O:
sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev
# Parallelism and linear algebra libraries:
sudo apt-get install -y libtbb-dev libeigen3-dev
# Python 2 & 3:
sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy
# others
sudo apt-get install -y libopenexr-dev
# Java:
# sudo apt-get install -y ant default-jdk
# Documentation:
# sudo apt-get install -y doxygen
download sources from release or ...
wget https://github.com/opencv/opencv/archive/3.4.1.zip
unzip 3.4.1.zip
rm 3.4.1.zip
mv opencv-3.4.1 OpenCV
cd OpenCV
... from git (better if compiling darknet)
cd /opt
git clone -b 3.4 --depth 1 https://github.com/opencv/opencv.git opencv.git
ln -sf opencv.git OpenCV
cd OpenCV
compile
mkdir build
cd build
# cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON ..
# cmake -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_JASPER=OFF ..
# with openCL
# cmake -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_JASPER=OFF -DWITH_OPENCL=ON ..
# with openCL and CUDA
#cmake -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_JASPER=OFF -DWITH_OPENCL=ON -DWITH_CUDA=ON ..
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
time make -j4
# 13:42 on flinx
# 5:02 on mostro
install
sudo make install
sudo ldconfig
===== android =====
prereq:
* android SDK in REAL_ANDROID_SDK (REAL_ANDROID_SDK=/opt/android-sdk) with NDK installed
Download a stub android sdk and opencv sources
# adjust these paths ##
REAL_ANDROID_SDK=/opt/android-sdk
# output builded opencv, can be removed after
BASE=/opt/OpenCV-android-sdk.custom
#######################
mkdir -p ${BASE}
cd ${BASE}
wget https://dl.google.com/android/repository/tools_r25.2.5-linux.zip
unzip tools_r25.2.5-linux.zip
tool/android sdk
Select and install the following two packages:
Android SDK Build-tools 27.0.3
Android 8.1.0 (API 27) -> SDK Platform
git clone --depth 1 https://github.com/opencv/opencv.git
cd opencv
wget https://gist.githubusercontent.com/ngriffiths/296e2fc16b8586705712d50bdfe746b0/raw/350a8cb6497bfe367dda75b7bb202d6c7ce09a72/always-use-ant__find_android.patch && git apply always-use-ant__find_android.patch
git apply always-use-ant__find_android.patch
cd platform/android
# edit ndk-16.config.py
# ABI("3", "arm64-v8a", "aarch64-linux-android-4.9", cmake_vars=dict(BUILD_ANDROID_PROJECTS='OFF')),
ANDROID_SDK=${BASE} ANDROID_HOME=${BASE} ./build_sdk.py \
--force_opencv_toolchain \
--ndk_path ${REAL_ANDROID_SDK}/ndk-bundle \
--config ndk-16.config.py \
${BASE}/build
To compile against libc++, I then changed ANDROID_STL="gnustl_static" in build_sdk.py to ANDROID_STL="c++_shared" and ran build_sdk.py again.
@ngriffiths you need to strip out intel threading libs (TBB). That'll shave off ~15MB off your library.