Clion中OpenCV的环境配置(Ubuntu系统)
之前只根据毛星宇的《OpenCV3编程入门》配置过VS在windows下面的环境。Linux/Mac下配置简单许多。
-
安装CMake:
不要傻傻去官网下源码,直接在terminal下$ sudo apt-get install cmake
-
OpenCV源码
在官网下载源码,选择需要的版本,下载下面的Sources -
安装依赖
$ 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
其中第三条安装可能会报包无法定位的错误,按以下方法解决
$ sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" $ sudo apt update $ sudo apt install libjasper1 libjasper-dev
-
创建编译目录
$ mkdir build $ cd build
-
使用cmake生成make文件并等待完成
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
这一步可能会卡在
-- IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz
可以等待一段时间应该可以下好
网络实在不行的情况下可以考虑手动安装,搜索
IPPICV
查看相关教程 -
进行编译
$ sudo make -j8 $ sudo make install
-
网上教程提到需要把库添加到路径
此处我没有对“opencv.conf”文件进行修改,也可以成功
-
以上已完成库的编译,接下来开始进行Clion的环境设置
打开Clion,新建一个工程,工程名为XXX -
打开工程的CMakeList,在末尾添加
find_package(OpenCV REQUIRED) target_link_libraries(<project name> ${OpenCV_LIBS})
以上代码需要修改两个地方:
-
第二句的
<project name>
,去掉< >,把peoject name改成工程名字,如果不知道就看CMakeList的projec()
括号中的内容
(自己做个笔记:在Markdown里输出尖括号要用转义字符) -
第二句还有另一种写法,使用库的绝对路径
在terminal中输入
$ pkg-config --cflags --libs opencv
能返回得到
-I/usr/local/include...... -lopencv_core
每个人的返回不一定一样,复制该内容,代替
${OpenCV_LIBS}
即可target_link_libraries(<project name> -I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_dnn -lopencv_ml -lopencv_objdetect - lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core )
事实上,${OpenCV_LIBS}也就是cmake通过find_package返回的库的路径的变量。
不建议使用绝对路径,使用${OpenCV_LIBS}的移植性更好
-
-
Clion的测试代码
#include<opencv2/opencv.hpp> using namespace cv; int main() { Mat image = imread("../test.jpg"); imshow("mytest",image); waitKey(0); return 0; }
图片需要注意:
- 命名为test.jpg,放在与main.cpp同一路径下
- Clion下的图片相对路径需要写作
../相对路径
-
若操作正确,应该可以看到弹出对话框显示图片了