目录
- 1.安装cmake
- 2.opencv安装文件准备
- 可选安装
- 3.进行编译
- 4.进行安装
- 5.使用测试
编译步骤:
1.安装cmake
安装wget:
应该已安装gcc工具套组:
yum install sudo
yum install -y gcc gcc-c++ make automake
yum install -y wget
wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz
tar -zxvf cmake-3.6.2.tar.gz
cd cmake-3.6.2
./bootstrap && make -j4 && sudo make install
cmake安装完成。
2.opencv安装文件准备
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
在gitgub上下载opencv及其扩展包,注意,两者tag版本应对齐
将 opencv_contrib 文件夹移至 opencv 文件夹下
将整理好的文件夹传送至用于编译的远程服务器上:
事先新建好opencvBuild文件夹。
//如果上传及下载的是文件夹,需要加入-r,代表递归操作,将前地址内容转移至后地址
csp -P 10008 -r D:\AI\opencv-4.x root@192.168.21.71:/home/opencvBuild
这里由于用的是vscode远程功能,所以直接传了。
创建一个编译目录:
cd opencv-4.x
mkdir build
cd build
再创建一个编译好后的安装目录:
mkdir /usr/local/opencv
下面安装opencv安装前需要安装的依赖(重要):
有些包找不到也能正常使用
sudo yum -y install epel-release
sudo yum -y install gtk2-devel
sudo yum install -y libpng-devel
sudo yum install -y jasper-devel
sudo yum install -y openexr-devel
sudo yum install -y libwebp-devel
sudo yum -y install libjpeg-turbo-devel
sudo yum -y install libtiff-devel
sudo yum -y install tbb-devel eigen3-devel
sudo yum -y install boost boost-thread boost-devel
sudo yum -y install libv4l-devel
可选安装
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
根据官网要求,输入cmake命令:这里使用-D对编译器进行设置
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv -D WITH_TBB=ON -D WITH_CUDA=ON -D OPENCV_GENERATE_PKGCONFIG=YES -D BUILD_SHARED_LIBS=ON -D WITH_OPENMP=ON -D ENABLE_PRECOMPILED_HEADERS=OFF -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=/home/opencvBuild/opencv-4.x/opencv_contrib-4.x/opencv_contrib-4.x/modules【这里改为源码中的 /opencv/opencv_contrib/modules 位置】 ../opencv-4.x 【最后跟的是源码目录】
3.进行编译
sudo make -j8
4.进行安装
sudo make install
安装完成。
5.使用测试
编写调用opencv的cpp文件,并用cmakelist进行编译:
c++文件
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat mat = imread("/root/opencvtest/pic.png");
if (mat.empty())
{
printf("could not load image...\n");
return -1;
}
std::cout << "Hello World!\n";
}
添加对应的cmakelist:
#设置CMAKE最`在这里插入代码片`低版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3)
MESSAGE(STATUS "start!")
#设置项目名称
SET(PROJECT_NAME OpenCV_test)
#这里添加刚刚安装的opencv的目录,需要包含OpenCVConfig.cmake
SET(OpenCV_DIR /usr/local/opencv/lib64/cmake/opencv4)
#建立项目
PROJECT(${PROJECT_NAME})
#寻找OpenCV库
FIND_PACKAGE(OpenCV REQUIRED)
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
#打印调试信息
MESSAGE(STATUS "Project: ${PROJECT_NAME}")
MESSAGE(STATUS "OpenCV library status:")
MESSAGE(STATUS " version: ${OpenCV_VERSION}")
MESSAGE(STATUS " libraries: ${OpenCV_LIBS}")
MESSAGE(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
#获取代码,在项目中,将所有代码都放在src文件夹中
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
MESSAGE(STATUS "Src file: ${DIR_SRCS}")
#编译可执行程序
ADD_EXECUTABLE(${PROJECT_NAME} ${DIR_SRCS})
#添加链接库
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})
运行命令:
cmake .
make
//运行程序:
./OpenCV_test
输出结果: