1、 OpenCV安装
###方式一
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
###方式二
OpenCV安装包下载
OpenCV_contrib
注意版本一致
下载完成后,在你的下载目录里可以看到opencv和opencv_contrib两个文件夹,将opencv_contrib目录移到opencv目录下 。
2、添加相关库
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
3、编译
安装好相关库后,在opencv目录下
mkdir build
- 若你的服务器没有预先装过anaconda,执行(注意后面的两个点不能少)
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
- 若你的服务器装过anaconda,可能存在一些 冲突,如果使用上面这条命令出现:Makefile:160: recipe for target ‘all’ failed的报错。只需要改成:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_SHARED_LIBS=OFF -D WITH_OPENMP=ON -D ENABLE_PRECOMPILED_HEADERS=OFF ..
接下来执行:
make -j8
编译完毕后,执行:
sudo make install
4、可选
- 添加路径
(1)打开文件
sudo gedit /etc/ld.so.conf
(2)文件中添加如下代码
/usr/local/lib
(3)保存关闭,运行下面代码
sudo ldconfig
- 配置环境
sudo gedit /etc/bash.bashrc
添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
查看所安装opencv的版本
pkg-config opencv --modversion
查看OpenCV的lib:
cd /usr/local/lib
ls
5、测试
进入opencv/samples/cpp/example_cmake目录下,终端打开,依次输入:
cmake .
make
./opencv_example
6、附加说明
运行cmake命令,注意针对OpenCV的编译,该命令有许多选项,这里仅给出我自己常用的
cmake -D CMAKE_INSTALL_PREFIX=/media/jc/Config/Deepin/local/libs/opencv/4.5_vino \
-D CMAKE_BUILD_TYPE=DEBUG \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=/media/jc/Config/Deepin/local/libs/opencv_contrib/modules \
-D WITH_FFMPEG=ON ..
下面是安装选项的示例:
* 选择安装位置
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv
* 选择编译方式
-D CMAKE_BUILD_TYPE=RELEASE/DEBUG
* 是否生成PKGCONFIG需要的opencv.pc文件
-D OPENCV_GENERATE_PKGCONFIG=ON/OFF
* 是否编译Contrib模块(这里的PATH要写到contrib下的modules)
-D OPENCV_EXTRA_MODULES_PATH=/home/..../opencv_contrib/modules
* 是否只是一个opencv_world动态链接库
-D BUILD_OPENCV_WORLD=ON/OFF
* 是否用Qt作为highgui模块的显示框架(需要先安装Qt)
-D WITH_Qt=ON/OFF
* 是否使用FFMPEG进行视频IO
-D WITH_FFMPEG=ON/OFF