Clion中OpenCV的环境配置(Ubuntu系统)

之前只根据毛星宇的《OpenCV3编程入门》配置过VS在windows下面的环境。Linux/Mac下配置简单许多。

  1. 安装CMake:
    不要傻傻去官网下源码,直接在terminal下$ sudo apt-get install cmake

  2. OpenCV源码
    在官网下载源码,选择需要的版本,下载下面的Sources

  3. 安装依赖

    $ 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
    
  4. 创建编译目录

    $ mkdir build
    $ cd build
    
  5. 使用cmake生成make文件并等待完成

    $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    

    这一步可能会卡在

    -- IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz
    

    可以等待一段时间应该可以下好

    网络实在不行的情况下可以考虑手动安装,搜索IPPICV查看相关教程

  6. 进行编译

    $ sudo make -j8
    $ sudo make install
    
  7. 网上教程提到需要把库添加到路径

    此处我没有对“opencv.conf”文件进行修改,也可以成功

  8. 以上已完成库的编译,接下来开始进行Clion的环境设置
    打开Clion,新建一个工程,工程名为XXX

  9. 打开工程的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}的移植性更好

  10. 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下的图片相对路径需要写作../相对路径
  11. 若操作正确,应该可以看到弹出对话框显示图片了

posted @ 2020-05-16 16:24  Tzbubble  阅读(2418)  评论(0编辑  收藏  举报