之前只根據毛星宇的《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下的圖片相對路徑需要寫作
../相對路徑
-
若操作正確,應該可以看到彈出對話框顯示圖片了