下载并编译OpenCV脚本记录(支持图片和视频处理)
Ubuntu环境,源码编译OpenCV
基础环境包含c++编译和调试工具
sudo apt update
sudo apt install -y build-essential cmake gdb
如果要支持opencv图片和视频处理至少还需要ffmpeg编解码相关的库(GStreamer库也可以)
sudo apt install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
脚本内容
#!/bin/bash
RED='\033[0;31m'
YELLOW='\033[0;33m'
RES='\033[0m'
CURRENT_DIR=$(pwd)
CURRENT_TIME=$(date +%Y%m%d%H%M%S)
POSTFIX="scripts"
LEN_POSTFIX=${#POSTFIX}
DIR_POSTFIX=${CURRENT_DIR:0-7:${LEN_POSTFIX}}
if [ "x${DIR_POSTFIX}" == "x${POSTFIX}" ]; then
WORKSPACE=${CURRENT_DIR}/..
else
WORKSPACE=${CURRENT_DIR}
fi
OPENCV_DIR=${WORKSPACE}/opencv
if [ ! -d ${OPENCV_DIR} ]; then
echo "Downloading opencv from GitHub"
git clone https://github.com/opencv/opencv.git
fi
cd ${OPENCV_DIR}
if [ "x$2" == "x" ]; then
git checkout 4.3.0 && git checkout -b v4.3.0
fi
BUILD_DIR=${OPENCV_DIR}/build
INSTALL_DIR=${OPENCV_DIR}/install
if [ x"$1" == x"rebuild" ]; then
if [ -d ${BUILD_DIR} ]; then
rm -rf ${BUILD_DIR}
fi
if [ -d ${INSTALL_DIR} ]; then
rm -rf ${INSTALL_DIR}
fi
fi
if [ ! -d ${BUILD_DIR} ]; then
echo -e "${BUILD_DIR} creating now..."
mkdir -p ${BUILD_DIR}
else
echo -e "${YELLOW}${BUILD_DIR} already exist${RES}"
fi
cd ${BUILD_DIR}
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
-DBUILD_SHARED_LIBS=ON \
-DWITH_FFMPEG=ON \
-DWITH_TBB=OFF \
-DBUILD_TESTS=OFF \
-DINSTALL_TESTS=OFF \
..
if [ $? != "0" ]; then
echo -e "${RED}[ERR]Failed to build the project${RES}"
exit 1
fi
make -j4
if [ $? != "0" ]; then
echo -e "${RED}[ERR]Failed to compile the project${RES}"
exit 1
fi
make install -j4
if [ $? != "0" ]; then
echo -e "${RED}[ERR]Failed to install the executables${RES}"
exit 1
fi