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配置文件的修改):

VS2019/VS2022编译opencv4.1.2/4.5.5(带sift等额外算法)_vs实现sift算法-CSDN博客

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值