大家好,我是活到老,学到老的猿氛。最近因为工作需要开始学习OpenCV,在此把学到的内容通过文字分享出来,希望通过这种内容输出的形式提高自己对知识的理解。
大部分语言课程的第一步是Hello World,OpenCV对我而言的第一步是开发环境的设置,参考官方文档(https://docs.opencv.org/)指引。
我自己是在Windows+VS环境下开发,Windows下面提供了两种环境安装方式:Pre-build Libraries预建库和CMake自编译。前者安装简单,包含了OpenCV基础模块,后者可以根据源代码自定义编译需要的模块,比如opencv-contrib。本文介绍的CMake的安装方案。
安装准备
1、安装cmake,version>=3.9.1,同时将/bin加入环境变量PATH
2、安装git-bash,version>=2.14.1
3、将gitbash定位到OpenCV安装目录,比如F:/lib目录:cd /f/lib
4、在F:/lib目录下创建installOCV.sh文件,并将下面的脚本写进去
#!/bin/bash -e
myRepo=$(pwd)
CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 16 2019"
#CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 15 2017 Win64"
#CMAKE_GENERATOR_OPTIONS=(-G"Visual Studio 16 2019" -A x64) # CMake 3.14+ is required
if [ ! -d "$myRepo/opencv" ]; then
echo "cloning opencv"
git clone https://github.com/opencv/opencv.git
else
cd opencv
git pull --rebase
cd ..
fi
if [ ! -d "$myRepo/opencv_contrib" ]; then
echo "cloning opencv_contrib"
git clone https://github.com/opencv/opencv_contrib.git
else
cd opencv_contrib
git pull --rebase
cd ..
fi
RepoSource=opencv
mkdir -p build_opencv
pushd build_opencv
CMAKE_OPTIONS=(-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF -DWITH_CUDA:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DINSTALL_CREATE_DISTRIB=ON)
set -x
cmake "${CMAKE_GENERATOR_OPTIONS[@]}" "${CMAKE_OPTIONS[@]}" -DOPENCV_EXTRA_MODULES_PATH="$myRepo"/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX="$myRepo/install/$RepoSource" "$myRepo/$RepoSource"
echo "************************* $Source_DIR -->debug"
cmake --build . --config debug
echo "************************* $Source_DIR -->release"
cmake --build . --config release
cmake --build . --target install --config release
cmake --build . --target install --config debug
popd
5、在git命令行中键入./installOCV.sh,然后脚本会从github中下载opencv和opencv-contrib并构建(github有时网络不好,无法下载,需要多尝试几次)
6、当opencv和opencv-contrib更新后,只要重新执行脚本即可重新构建最新版本库文件
引用参考
Windwos安装详情参考:https://docs.opencv.org/master/d3/d52/tutorial_windows_install.html#tutorial_windows_install_prebuilt
其他平台的安装参考:https://docs.opencv.org/master/df/d65/tutorial_table_of_content_introduction.html
今天的介绍就到这里,希望大家喜欢,谢谢。