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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章