Project import generated by Copybara.
GitOrigin-RevId: 53a42bf7ad836321123cb7b6c80b0f2e13fbf83e
This commit is contained in:
+60
-44
@@ -16,56 +16,72 @@
|
||||
#
|
||||
# Script to build OpenCV from source code and modify the MediaPipe opencv config.
|
||||
# Note that this script only has been tested on Debian 9 and Ubuntu 16.04.
|
||||
# usage:
|
||||
#
|
||||
# To have a full installation:
|
||||
# $ cd <mediapipe root dir>
|
||||
# $ chmod +x ./setup_opencv.sh
|
||||
# $ ./setup_opencv.sh
|
||||
# $ sh ./setup_opencv.sh
|
||||
#
|
||||
# To only modify the mediapipe config for opencv:
|
||||
# $ cd <mediapipe root dir>
|
||||
# $ sh ./setup_opencv.sh config_only
|
||||
|
||||
set -e
|
||||
if [ "$1" ] && [ "$1" != "config_only" ]
|
||||
then
|
||||
echo "Unknown input argument. Do you mean \"config_only\"?"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
opencv_build_file="$( cd "$(dirname "$0")" ; pwd -P )"/third_party/opencv_linux.BUILD
|
||||
echo $opencv_build_file
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
echo "Installing OpenCV from source"
|
||||
sudo apt update && sudo apt install build-essential git
|
||||
sudo apt install cmake ffmpeg libavformat-dev libdc1394-22-dev libgtk2.0-dev \
|
||||
libjpeg-dev libpng-dev libswscale-dev libtbb2 libtbb-dev \
|
||||
libtiff-dev
|
||||
rm -rf /tmp/build_opencv
|
||||
mkdir /tmp/build_opencv
|
||||
cd /tmp/build_opencv
|
||||
git clone https://github.com/opencv/opencv_contrib.git
|
||||
git clone https://github.com/opencv/opencv.git
|
||||
mkdir opencv/release
|
||||
cd opencv_contrib
|
||||
git checkout 3.4
|
||||
cd ../opencv
|
||||
git checkout 3.4
|
||||
cd release
|
||||
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local \
|
||||
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_ts=OFF \
|
||||
-DOPENCV_EXTRA_MODULES_PATH=/tmp/build_opencv/opencv_contrib/modules \
|
||||
-DBUILD_opencv_aruco=OFF -DBUILD_opencv_bgsegm=OFF -DBUILD_opencv_bioinspired=OFF \
|
||||
-DBUILD_opencv_ccalib=OFF -DBUILD_opencv_datasets=OFF -DBUILD_opencv_dnn=OFF \
|
||||
-DBUILD_opencv_dnn_objdetect=OFF -DBUILD_opencv_dpm=OFF -DBUILD_opencv_face=OFF \
|
||||
-DBUILD_opencv_fuzzy=OFF -DBUILD_opencv_hfs=OFF -DBUILD_opencv_img_hash=OFF \
|
||||
-DBUILD_opencv_js=OFF -DBUILD_opencv_line_descriptor=OFF -DBUILD_opencv_phase_unwrapping=OFF \
|
||||
-DBUILD_opencv_plot=OFF -DBUILD_opencv_quality=OFF -DBUILD_opencv_reg=OFF \
|
||||
-DBUILD_opencv_rgbd=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_shape=OFF \
|
||||
-DBUILD_opencv_structured_light=OFF -DBUILD_opencv_surface_matching=OFF \
|
||||
-DBUILD_opencv_world=OFF -DBUILD_opencv_xobjdetect=OFF -DBUILD_opencv_xphoto=OFF
|
||||
make -j 16
|
||||
sudo make install
|
||||
rm -rf /tmp/build_opencv
|
||||
echo "OpenCV has been built. You can find the header files and libraries in /usr/local/include/opencv2/ and /usr/local/lib"
|
||||
|
||||
echo "Installing OpenCV from source"
|
||||
sudo apt update && sudo apt install build-essential git
|
||||
sudo apt install cmake ffmpeg libavformat-dev libdc1394-22-dev libgtk2.0-dev \
|
||||
libjpeg-dev libpng-dev libswscale-dev libtbb2 libtbb-dev \
|
||||
libtiff-dev
|
||||
rm -rf /tmp/build_opencv
|
||||
mkdir /tmp/build_opencv
|
||||
cd /tmp/build_opencv
|
||||
git clone https://github.com/opencv/opencv_contrib.git
|
||||
git clone https://github.com/opencv/opencv.git
|
||||
mkdir opencv/release
|
||||
cd opencv_contrib
|
||||
git checkout 3.4
|
||||
cd ../opencv
|
||||
git checkout 3.4
|
||||
cd release
|
||||
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local \
|
||||
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_ts=OFF \
|
||||
-DOPENCV_EXTRA_MODULES_PATH=/tmp/build_opencv/opencv_contrib/modules \
|
||||
-DBUILD_opencv_aruco=OFF -DBUILD_opencv_bgsegm=OFF -DBUILD_opencv_bioinspired=OFF \
|
||||
-DBUILD_opencv_ccalib=OFF -DBUILD_opencv_datasets=OFF -DBUILD_opencv_dnn=OFF \
|
||||
-DBUILD_opencv_dnn_objdetect=OFF -DBUILD_opencv_dpm=OFF -DBUILD_opencv_face=OFF \
|
||||
-DBUILD_opencv_fuzzy=OFF -DBUILD_opencv_hfs=OFF -DBUILD_opencv_img_hash=OFF \
|
||||
-DBUILD_opencv_js=OFF -DBUILD_opencv_line_descriptor=OFF -DBUILD_opencv_phase_unwrapping=OFF \
|
||||
-DBUILD_opencv_plot=OFF -DBUILD_opencv_quality=OFF -DBUILD_opencv_reg=OFF \
|
||||
-DBUILD_opencv_rgbd=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_shape=OFF \
|
||||
-DBUILD_opencv_structured_light=OFF -DBUILD_opencv_surface_matching=OFF \
|
||||
-DBUILD_opencv_world=OFF -DBUILD_opencv_xobjdetect=OFF -DBUILD_opencv_xphoto=OFF
|
||||
make -j 16
|
||||
sudo make install
|
||||
rm -rf /tmp/build_opencv
|
||||
echo "OpenCV has been built. You can find the header files and libraries in /usr/local/include/opencv4/opencv2 and /usr/local/lib"
|
||||
# https://github.com/cggos/dip_cvqt/issues/1#issuecomment-284103343
|
||||
sudo touch /etc/ld.so.conf.d/mp_opencv.conf
|
||||
sudo bash -c "echo /usr/local/lib >> /etc/ld.so.conf.d/mp_opencv.conf"
|
||||
sudo ldconfig -v
|
||||
fi
|
||||
|
||||
# Modify the build file.
|
||||
echo "Modifying MediaPipe opencv config"
|
||||
sed -i "s/lib\/x86_64-linux-gnu/local\/lib/g" $opencv_build_file
|
||||
sed -i "20i \ \"local/lib/libopencv_optflow.so*\"," $opencv_build_file
|
||||
sed -i "/includes =/d" $opencv_build_file
|
||||
sed -i "/hdrs =/d" $opencv_build_file
|
||||
line_to_insert=$(grep -n 'linkstatic =' $opencv_build_file | awk -F ":" '{print $1}')'i'
|
||||
sed -i "$line_to_insert \ includes = [\"local\/include\/opencv4\/\"]," $opencv_build_file
|
||||
sed -i "$line_to_insert \ hdrs = glob([\"local\/include\/opencv4\/\*\*\/\*\.h\*\"])," $opencv_build_file
|
||||
|
||||
opencv_build_file="$( cd "$(dirname "$0")" ; pwd -P )"/third_party/opencv_linux.BUILD
|
||||
workspace_file="$( cd "$(dirname "$0")" ; pwd -P )"/WORKSPACE
|
||||
|
||||
sed -i "s/lib\/x86_64-linux-gnu/lib/g" $opencv_build_file
|
||||
linux_opencv_config=$(grep -n 'linux_opencv' $workspace_file | awk -F ":" '{print $1}')
|
||||
path_line=$((linux_opencv_config + 2))
|
||||
sed -i "$path_line d" $workspace_file
|
||||
sed -i "$path_line i\ path = \"/usr/local\"," $workspace_file
|
||||
echo "Done"
|
||||
|
||||
Reference in New Issue
Block a user