??近期Mr.Xi要開始“C++從入門到精通"之旅了髓介,作為一個python用戶实蔽,前面學了無數(shù)次都沒學好依沮,這次我相信一定能夠學有所成!那么今天從opencv的安裝以及Cmakelist.txt的編寫開始學起晶府。
Opencv3.4.0 ubuntu安裝
- 壓縮包下載
wget https://github.com/opencv/opencv/archive/3.4.0.zip
- 解壓縮
unzip 3.4.0.zip
cd opencv-3.4.0
- 安裝依賴庫和cmake
sudo apt-get install update
apt-get install cmake
apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
- 建立build文件夾
mkdir build && cd build
- Cmake
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
??CMAKE_BUILD_TYPE是指編譯的模式,可以選Debug或者Release钻趋, CMAKE_INSTALL_PREFIX是指Cmake的安裝地址川陆。下圖是Cmake成功的界面。
- make
??這時build文件夾里應該出現(xiàn)了makefile文件蛮位,下面執(zhí)行編譯命令(這一段時間很長):
sudo make
- 安裝
sudo make install
- 安裝完成以后较沪,需要配置環(huán)境變量
sudo gedit /etc/ld.so.conf.d/opencv.conf
??打開以后應該是個空白文件,直接添加
/usr/local/lib
- 使配置路徑生效
sudo ldconfig
- 配置bash
sudo gedit /etc/bash.bashrc
??在最末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
- 使配置生效
source /etc/bash.bashrc
- 更新
sudo updatedb
- 測試是否安裝成功
cd opencv-3.4.0/samples/cpp/example_cmake #opencv官方例子
cmake .
make
./opencv_example
??若成功安裝失仁,屏幕右下角將出現(xiàn)hello opencv的攝像頭
??查看opencv版本
pkg-config opencv --modversion
- 卸載opencv
??如果想要把之前版本的opencv卸載干凈购对,并安裝新的版本的opencv
- 刪除build文件夾
cd XXXXX/opencv/build #進入opencv build目錄
sudo make uninstall
cd ..
sudo rm -r build
2.刪除/usr中的opencv相關項
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
cd /usr
find . -name "*opencv*" | xargs sudo rm -rf
cd /home/*** #切換到opencv路徑
chmod a+x /home/***/opencv #賦予opencv可執(zhí)行權限
rm -r /home/***/opencv #刪除Opencv文件夾
??至此Opencv安裝以及卸載部分已經(jīng)介紹完了。
Opencv項目Cmakelist.txt的配置
cmake_minimum_required(VERSION 2.8)
project(xi)
find_package( OpenCV 3 REQUIRED )
set(CMAKE_CXX_STANDARD 14)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(xi main.cpp)
target_link_libraries(xi ${OpenCV_LIBS})
??如果不配置好Cmakelist陶因,那么在編輯器內是找不到opencv庫的骡苞。下面以此介紹各行的用途:
- cmake_minimum_required(VERSION 2.8)規(guī)定了系統(tǒng)所需最低版本的cmake
- project(XXX)是項目的名字
- find_package( OpenCV 3 REQUIRED )用來在系統(tǒng)里尋找Opencv包,找到以后賦予 ${OpenCV_INCLUDE_DIRS}及{OpenCV_LIBS}相應的值。
- set是賦值的指令解幽,這里是指定C++版本為14
- include_directories(${OpenCV_INCLUDE_DIRS}) 這里是添加opencv的頭文件
- add_executable(xi main.cpp) 用來指定哪些cpp用來生成最終的可執(zhí)行文件
- target_link_libraries(xi ${OpenCV_LIBS}) 用來鏈接導入庫贴见,用在add_executable以后。
Cmakelist的詳細語法可以參照鏈接