centos7安裝和編譯opencv4.5.0
版權聲明:本文為CSDN博主「冰海228」的原創文章,
原文鏈接:https://blog.csdn.net/qianbin3200896/article/details/117160054
一、centos7的安裝
建議使用最小安裝方法,安裝出來的操作系統比較干凈,參考教程 https://blog.csdn.net/u010476739/article/details/106806683
另外,安裝時CPU最好開4個,內存7G以上。因為后面要編譯opencv,對編譯性能要求稍微高一些。
二、gcc的安裝
默認的 CentOS 軟件源上包含一個名稱為Development Tools的軟件包組,這個組合包含了 GCC 編譯器以及一系列庫文件,還有其他編譯軟件需要用到的工具。運行代碼如下:
sudo yum group install "Development Tools"
安裝完成后使用命令:
gcc --version
來驗證安裝是否成功,效果如下:
-
聲明:在這一步可能有的人裝不上,可以換源操作,再次嘗試安裝,如果換源后也無法下載,可以跳過這一步,直接安裝gcc,在后續報錯中,安裝缺少的工具
三、cmake的安裝
-
- 安裝wget
yum install -y wget
-
- 獲取CMake源碼包
wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz
-
- 解壓CMake源碼包
tar -zxvf cmake-3.6.2.tar.gz
-
- 編譯安裝
cd cmake-3.6.2
./bootstrap && make -j4 && sudo make install
最后使用命令:
cmake --version
可以查看當前安裝的cmake版本號。
-
聲明,在這一步出錯的同學可以參考以下鏈接,最好安裝較新版本camke
四、Opencv4.5.0的安裝
-
- 安裝依賴
sudo yum -y install epel-release
sudo yum -y install gtk2-devel
sudo yum install -y libpng-devel
sudo yum install -y jasper-devel
sudo yum install -y openexr-devel
sudo yum install -y libwebp-devel
sudo yum -y install libjpeg-turbo-devel
sudo yum -y install libtiff-devel
sudo yum -y install tbb-devel eigen3-devel
sudo yum -y install boost boost-thread boost-devel
sudo yum -y install libv4l-devel
-
- 下載opencv和opencv_contrib安裝包:
git clone https://gitee.com/binghai228/opencv.git
cd opencv
git checkout 4.5.0
cd ..
git clone https://gitee.com/binghai228/opencv_contrib
cd opencv_contrib
git checkout 4.5.0 # 選擇分支
cd ..
然后將opencv_contrib移動到opencv目錄下,
然后進入opencv文件夾並創建build文件夾:
cd opencv
mkdir build
cd build
此時opencv目錄下結構如下圖所示:
-
- 額外配置
(1)去github或是其他網站把opencv_contrib的module缺失文件下載下來,然后放到opencv_contrib/modules/xfeatures2d/src目錄下,文件列表如下,這里給一個我自己整理的下載鏈接:xfeatures2d
(2)將opencv/modules/features2d復制,然后粘貼到build目錄
-
- 編譯和安裝
首先確保在build目錄下,然后輸入下述命令:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/ -D WITH_TBB=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D OPENCV_GENERATE_PKGCONFIG=ON ..
然后輸入下述命令進行編譯:
make
這里不建議用make -j4或者make -j8進行編譯,因為多線程編譯雖然速度快但是容易出問題。中間如果因為特殊原因斷了可以使用make命令再繼續。
編譯100%完成后最后輸入下述命令進行安裝:
make install
-
- 配置opencv庫可執行路徑
首先安裝vim:
sudo yum install -y vim
添加庫路徑–執行:
sudo ln -s /usr/local/lib64/pkgconfig/opencv4.pc /usr/share/pkgconfig/
sudo ldconfig
添加環境變量:
sudo vim /etc/profile
打開此文件,在文件末尾另起行加入如下兩行:(保存,退出)
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib64/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64
最后令其生效:
source /etc/profile
接下來進行pkg-config配置,默認的pkg搜索鏈接路徑/usr/lib/pkgconfig,需要將opencv.pc拷貝到pkg的默認路徑下
cp /usr/local/lib64/pkgconfig/opencv4.pc /usr/lib/pkgconfig
然后輸入命令:
ldconfig
重啟以后,輸入下面的命令查看當前opencv版本號:
pkg-config --modversion opencv4
如果安裝正常,輸出如下所示:
五、使用Opencv編寫C++圖像處理程序
-
- 編寫CMakeLists.txt
#聲明要求的 cmake 最低版本
cmake_minimum_required( VERSION 3.1 )
# 聲明一個 cmake 工程
project( pro )
# 設置編譯模式
set( CMAKE_BUILD_TYPE "Release" )
#添加OPENCV庫
#指定OpenCV版本,代碼如下
#find_package(OpenCV 3.3 REQUIRED)
#如果不需要指定OpenCV版本,代碼如下
find_package(OpenCV REQUIRED)
#添加OpenCV頭文件
include_directories(${OpenCV_INCLUDE_DIRS})
#顯示OpenCV_INCLUDE_DIRS的值
message(${OpenCV_INCLUDE_DIRS})
# 添加一個可執行程序
# 語法:add_executable( 程序名 源代碼文件 )
add_executable( main main.cpp )
# 將庫文件鏈接到可執行程序上
target_link_libraries( main ${OpenCV_LIBS})
- 編寫C++文件main.cpp
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(){
Mat image;
image = imread("./1.jpg");
if (image.empty()) {
cout << "Error! Input image cannot be read...\n";
return -1;
}
cout<<"圖像寬為:"<<image.cols<<"\t高度為:"<<image.rows<<"\t通道數為:"<<image.channels()<<endl;
//imshow("images",image); 打開一個小窗口,展示讀取的照片
//waitKey(0); 等待一個信號退出
return 0;
}
然后正常的使用cmake編譯和運行即可。
cmake .
make