Centos&&OpenCV(4.5.1)的开发环境配置&&OpenCV_contrib安装
概要:在Centos8上配置opencv的开发环境
一、准备
1.安装依赖库
安装opencv所需依赖库
yum install cmake gcc gcc-c++ gtk+-devel gimp-devel gimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devel libpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-devel jasper-devel jasper-utils swig python libtool nasm
2.获取opencv
方法一
wget opencv.zip https://codeload.github.com/opencv/opencv/zip/4.5.1
unzip opencv.zip
cd opencv-4.5.1
下载还挺卡的
方法二
直接下载
unzip opencv.zip && cd opencv-4.5.1
二、配置环境
1.编译
mkdir build && cd build
cmake3 -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j$(nproc)
make install
多等等就编译完了
2.试验
采用cmake编译测试
(我发现直接用g++编译会找不着库会报错,但教程上用cmake就解决了,顺便粗略理解了一下cmake怎么编译)
1. 构建一个测试文件夹
mkdir test
cd test
touch CMakeLists.txt
touch test.cpp
并且附加一张测试图片
如图所示(下图为在虚拟机Centos7上进行测试的截图)
2. 写入内容
在CMakeLists.txt内写入项目配置信息
set(CMAKE_CXX_STANDARD 14)
cmake_minimum_required(VERSION 2.8)
project(test) #项目名称
find_package( OpenCV REQUIRED ) #要opencv库
include_directories( ${OpenCV_INCLUDE_DIRS} ) #引用opencv
add_executable( test test.cpp ) #指明cpp文件以及输出文件
target_link_libraries( test ${OpenCV_LIBS} )
在test.cpp内写入
#include<bits/stdc++.h>
#include<opencv2/opencv.hpp>//引用opencv库
using namespace std;
using namespace cv;//定义命名空间
int main(){
Mat img;
img=imread("th.jpg");//读取图像文件
if(!img.data){
cout<<"img wrong or not exist"<<endl;
}
else{
//如果没有图形界面,在照片存在的情况下,没有报错,也可以说明配置成功了
cout<<"test successfully!!!"<<endl;
//有图形界面的可以拿这个试
/*namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", img);
waitKey(0);*/
}
return 0;
}
3. 编译运行
编译及运行:
cmake3 .
make
该目录就会变成这样
然后运行
./test
显示以下应该是成功了
欸欸欸,还没完呢,contrib还没装
要用到<opencv2/face.hpp>(以及其他各种库)就得装opencv的拓展(可以这么叫吧),所以contrib也得装,首先下载对应版本的contrib库,然后修改cmake的执行语句重新编译应该就可以了。
指令如下:
cmake3 -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH="将此处替换为contrib库中modules的文件夹路径(引号去掉)" -D CMAKE_INSTALL_PREFIX=/usr/local ..
其实比起之前的没多大改变,就加了引用contrib库的内容。
总结
首次在csdn发帖
参考:
https://blog.csdn.net/whudee/article/details/93379780
https://www.cnblogs.com/qjx-2016/p/8532296.html