一、下载opencv
下载链接https://opencv.org/releases/,选择sources版本
二、解压下载下来的zip包
unzip opencv-4.2.0.zip
三、安装文件和依赖库
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
注意:安装libjasper-dev可能失败,可能需要安装依赖库
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
四、创建构建项目的文件夹
mkdir build_Relase
cd build_Relase
注:最好在解压后的目录创建新的文件夹
五、执行cmake
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D WITH_GTK=ON -D WITH_OPENMP=ON -D CMAKE_INSTALL_PREFIX=/usr/local/opencv/Relase ..
CMAKE_BUILD_TYPE=Release 生成发布版本
OPENCV_GENERATE_PKGCONFIG=YES 创建 PKGCONFIG文件
CMAKE_INSTALL_PREFIX =/usr/local/opencv/Relase .. 安装路径
注: cmake 过程中需要 ippicv,下载会很慢,而且很容易失败,所以可以提前下载
文件下载地址:
链接: https://pan.baidu.com/s/1g98c_uuArbPUz6J5Ud__Nw 提取码: 8z91
在存放源码的目录中找到3rdparty/ippicv/ippicv.cmake 文件
在文件中找到"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"
修改为"file:///home/用户名/下载/" 说明(///home/用户名/下载/): 下载的ippicv存放的目录
ippicv的文件名为:ippicv_2019_lnx_intel64_general_20180723.tgz
这样改的原因是让ippicv从网站下载改为从本地下载
六、查看CPU核心数:
nproc
七、执行编译命令,这个过程是漫长的
sudo make -j4 j4:的意思是用4个核执行编译
sudo make install # 现在 opencv 已经安装好了
注意:就是意外终止可以直接跳过前面的步骤从这里开始,
接着编译上次编译终止的位置继续编译
八、配置环境变量:
sudo gedit /etc/ld.so.conf.d/opencv.conf
在文件末尾添加:/usr/local/opencv/Relase/lib
即执行第五步的时候设置的路径里存放动态库的路径
九、执行如下命令使得刚才的配置路径生效
sudo ldconfig
ldconfig的主要用途:
默认搜寻/lilb和/usr/lib,以及配置文件/etc/ld.so.conf内所列的目录下的库文件。
搜索出可共享的动态链接库,库文件的格式为:lib***.so.**,
进而创建出动态装入程序(ld.so)所需的连接和缓存文件。
缓存文件默认为/etc/ld.so.cache,该文件保存已排好序的动态链接库名字列表。
ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令
十、配置bash
sudo gedit /etc/bash.bashrc
在最末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv/Relase/lib/pkgconfig
export PKG_CONFIG_PATH
保存文件,执行如下命令使得配置生效
source /etc/bash.bashrc
更新
sudo updatedb
十一:编译并执行测试程序
opencv-4.2.0/samples/cpp/example_cmake目录下
按顺序执行
cmake . #这个是以字母C开头的
make
./opencv_example
执行这一步的时候如果报错如下错误:
CMake Error at CMakeLists.txt:5 (find_package):
By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "OpenCV", but
CMake did not find one.
Could not find a package configuration file provided by "OpenCV" with any
of the following names:
OpenCVConfig.cmake
openCV-config.cmake
Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
"OpenCV_DIR" to a directory containing one of the above files. If "OpenCV"
provides a separate development package or SDK, be sure it has been
installed.
解决方法:
第一种:找到opencv-4.2.0/samples/cpp/example_cmake目录下的CMakeLists.txt文件
在find_package(OpenCV REQUIRED)前添加
set(OpenCV_DIR /home/yzl/opencv/opencv-4.2.0/build_Relase)
第二种:找到opencv-4.2.0/samples/cpp/example_cmake目录下的CMakeLists.txt文件
在find_package(OpenCV REQUIRED)前添加
set(CMAKE_MODULE_PATH /home/yzl/opencv/opencv-4.2.0/build_Relase)
“/home/yzl/opencv/opencv-4.2.0/build_Relase”:第四步创建构建项目的文件夹