1、下載opencv4.1.2與opencv_contrib4.1.2
Opencv: https://github.com/opencv/opencv/releases
Opencv_contrib: https://github.com/opencv/opencv_contrib/releases
2、camke opencv4
(1)解壓opencv4.1.2與opencv_contrib4.1.2
(2)在opencv4.1.2中創建build:mkdir build
(3)進入build目錄:cd build,然後cmake:
cmake
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv4
# 如果要安裝opencv_contrib模塊,需要指定對應的modules文件夾位置
-D OPENCV_EXTRA_MODULES_PATH= ../opencv_contrib/modules
# 基本用不到python2
-D BUILD_opencv_python2=OFF
# 需要使用opencv的GPU加速,將CUDA選項開啓,如果不開啓則OFF
-D WITH_CUDA=ON
# 這個選項非常重要,會生成一個被pkg-config模塊使用的opencv4.pc文件,編譯opencv的c++項目時可能會用到
-D OPENCV_GENERATE_PKGCONFIG=ON
命令如下:(cmake會下載各種文件)
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D BUILD_opencv_python2=OFF -D WITH_CUDA=ON -D OPENCV_GENERATE_PKGCONFIG=ON ..
如果目錄
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4 -D OPENCV_EXTRA_MODULES_PATH=.. /opencv_contrib/modules -D BUILD_opencv_python2=OFF -D WITH_CUDA=ON -D OPENCV_GENERATE_PKGCONFIG=ON ..
需要拷貝相應目錄到/usr/local/下,包括opencv4中include/ lib64.
PS: 如果cmake中出現找不到ippicv、ffmpeg與xfeatures2d相關文件,則可以參考(cmake配置文件的修改):
https://blog.csdn.net/YMilton/article/details/102898814
3、make & make install
(1)cmake完之後,通過make -j8進行make
(2)cmake完之後,進行make install
4、配置環境變量
在用戶目錄下,打開.bash_profile
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
PATH=$PATH: $PKG_CONFIG_PATH/
export PATH
然後source .bash_profile
5、測試opencv程序
#include <opencv2/opencv.hpp>
#include <iostream>
int main(){
std::cout << “ h w ” << std::endl;
cv::Mat img = cv::imread(“1.png”);
cv::imwrite(“11.png”, img);
return 0;
}
假設這個cpp文件爲test.cpp,則編譯該程序的命令如下:
g++ test.cpp -o test $(pkg-config --cflags --libs opencv4) -std=c++11
其中
$(pkg-config --cflags --libs opencv4)是指定運行環境爲opencv4的一些庫,
-std=c++11指定運行C++的標準爲C++11特性
最後運行./test
其中在運行./test會出現如下錯誤:
error: "libopencv_gapi.so.4.1: cannot open shared object file: No such file or directory"
(1) 首先找到libopencv_gapi.so.4.1的位置,通過find / -name “libopencv_gapi.so.4.1”
發現位置在/usr/local/lib64
(2) 在目錄/etc/ld.so.conf.d/中創建opencv4.conf,然後把/usr/local/lib64添加到出創建的文件中
(3) 最後sudo ldconfig -v