centos7編譯opencv4.1.2(帶sift、surf特徵)

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

 

發佈了35 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章