|
- #!/bin/bash -e
-
- # This script is a workaround of installing opencv-python in termux.
-
- SRC_DIR=$(readlink -f "`dirname $0`/../../../")
- cd ${SRC_DIR}
- source scripts/whl/android/utils.sh
-
- function install_apt_package() {
- APT_PACKAGE="build-essential cmake libjpeg-turbo libpng python clang"
- echo "try to install: ${APT_PACKAGE}"
- apt install ${APT_PACKAGE}
- }
-
- function build_opencv_python() {
- python3 -m pip install numpy
- mge_python_env_root="${HOME}/mge_python_env"
- mkdir -p ${mge_python_env_root}
- cd ${mge_python_env_root}
-
- opencv_repo_dir=${mge_python_env_root}/opencv
- if [ -d ${opencv_repo_dir}/.git ];then
- echo "already find opencv repo"
- cd ${opencv_repo_dir}
- git reset --hard
- git clean -xdf
- git fetch
- else
- cd ${mge_python_env_root}
- rm -rf ${opencv_repo_dir}
- git clone https://github.com/opencv/opencv.git
- fi
- # Build and test latest version by default. You can modify OPENCV_VER to build and test another version!!
- python3_site=`python3 -c 'import site; print(site.getsitepackages()[0])'`
- OPENCV_VER="3.4.15"
- git checkout ${OPENCV_VER}
- if [ -e ${python3_site}/cv2/__init__.py ];then
- echo "python3 already build cv2, skip build it, if you want to rebuild, you can do: rm -rf ${python3_site}/cv2"
- else
- cd ${opencv_repo_dir}
- git checkout ${OPENCV_VE}
- git apply ${SRC_DIR}/scripts/whl/android/cv_patch/*.patch
- mkdir -p build
- cd build
- echo "will install to ${python3_site}"
- PYTHON3_EXECUTABLE=`command -v python3`
- LDFLAGS=" -llog -lpython3" cmake -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_opencv_python3=on \
- -DBUILD_opencv_python2=off -DWITH_QT=OFF -DWITH_GTK=OFF -DBUILD_ANDROID_PROJECTS=OFF \
- -DBUILD_ANDROID_EXAMPLES=OFF -DBUILD_FAT_JAVA_LIB=OFF -DBUILD_ANDROID_SERVICE=OFF \
- -DHAVE_opencv_python3=ON -D__INSTALL_PATH_PYTHON3=${python3_site} \
- -DPYTHON3_EXECUTABLE=${PYTHON3_EXECUTABLE} \
- -DOPENCV_PYTHON_INSTALL_PATH=${python3_site} -DCMAKE_INSTALL_PREFIX=${python3_site} .. \
- && make -j$(nproc) && make install
-
- # check if build successfully
- cd ~
- python3 -c 'import cv2;print(cv2.__version__)'
- fi
- }
-
- ############install env now###########
- echo "run at root dir: ${SRC_DIR}"
- check_termux_env
- install_apt_package
- build_opencv_python
|