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. 若操作正確,應該可以看到彈出對話框顯示圖片了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM