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