准备

安装依赖

sudo yum -y install epel-release         # 安装epel扩展源
sudo yum -y install git gcc gcc-c++ cmake3
sudo yum -y install qt5-qtbase-devel
sudo yum install -y python34 python34-devel python34-pip
sudo yum install -y python python-devel python-pip
sudo yum -y install python-devel numpy python34-numpy
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 install -y freeglut-devel mesa-libGL mesa-libGL-devel
sudo yum -y install libtiff-devel
sudo yum -y install libdc1394-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 yum -y install gstreamer-plugins-base-devel
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum -y install ffmpeg ffmpeg-devel  # 安装ffmpeg依赖【必须】

下载最新的OpenCV

这个很慢,可以源码下载,然后编译安装

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout master         # 选择master版本分支
cd ..
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout master         # 选择master版本分支
cd ..

编译安装OpenCV

cd opencv-4.3.0/
mkdir build
cd buildcmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local  -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/ -D WITH_TBB=OFF  -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D OPENCV_GENERATE_PKGCONFIG=ON .. # 生成静态库
# cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local  -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/ -D WITH_TBB=OFF  -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D OPENCV_GENERATE_PKGCONFIG=ON .. make -j$(nproc)          #有几个CPU就用几个CPU
make install

cmake编译选项(ON是开(机)的意思; OFF是关(机)的意思)

  • -D CMAKE_BUILD_TYPE=RELEASE

    • 编译模式,release/debug, 默认为release
  • -D CMAKE_INSTALL_PREFIX=/usr/local

    • 安装路径
  • -D WITH_TBB=ON \ #Include Intel TBB support

    • (Intel开发的并行编程开发工具),默认为off
  • -D BUILD_TIFF=ON

  • Build libtiff from source(一种灵活的位图格式),默认为ON
  • -D WITH_V4L=ON
  • 支持Vedio4Linux(是Linux中关于视频设备的内核驱动,为针对视频设备的应用视频设备的应用程序提供一系列接口函数,这些视频设备包括TV卡、视频捕捉卡和USB摄像头等,对于USB摄像头,其驱动程序中需要提供基本的I/O操作用于open、read、write、close函数的实现),默认为ON
  • -D INSTALL_C_EXAMPLES=ON
  • Install C examples, 默认为off
  • -D INSTALL_PYTHON_EXAMPLES=ON \
  • Install Python examples, 默认为off
  • -D BUILD_EXAMPLES=ON
  • Build all examples, 默认为off
  • -D WITH_QT=ON

/ #支持QT(c++图像用户界面开发框架,多用于开发GUI),默认为off

  • -D WITH_GTK=ON
  • 支持跨平台通用图形工具包GTK, 默认为on
  • -D WITH_OPENGL=ON
  • 支持开放图形库OpenGL,默认为off …
  • -D OPENCV_GENERATE_PKGCONFIG=ON
  • Linux下我们使用opencv,需要使用pkg-config来进行环境变量的管理,这个软件需要.pc类型的文件作为软件配置信息
    生成opencv.pc文件的配置(注意,opencv4生成的文件叫做opencv4.pc)

错误:

Maybe need administrative privileges.

错误

CMake Error at cmake_install.cmake:41 (file):file cannot create directory: /usr/local/share/licenses/opencv3.  Maybeneed administrative privileges.

解决

需要su权限

IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz

错误

 IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz
-- Try 1 failed
--
=======================================================================Couldn't connect to server from the Internet.Perhaps direct connections are not allowed in the current network.To use proxy please check/specify these environment variables:- http_proxy/https_proxy- and/or HTTP_PROXY/HTTPS_PROXY

查看

# cd ../.cache/ippicv/
# ls -l

解决

方法0

进入 IPAddress.com 网站查询raw.githubusercontent.com真实地址。
打开 etc\hosts,(需要使用管理员权限打开)
追加199.232.96.133 raw.githubusercontent.com如下:

方法1:

1、手动下载

官网下载太慢了,直接到百度云下载吧:

链接:https://pan.baidu.com/s/14EzGMm5tUp9FuM5Gb2_Z8Q
提取码:n65y


2、覆盖

 mv ippicv_2020_lnx_intel64_general_20191018_general.tgz opencv-4.3.0/.cache/ippicv/7421de0095c7a39162ae13a6098782f9-ippicv_2020_lnx_intel64_20191018_general.tgz

cmake/OpenCVModule.cmake:370 (_glob_locations)

错误

CMake Error at cmake/OpenCVModule.cmake:288 (message):No modules has been found:/home/oceanstar/workspace/opencv-4.3.0/opencv_contrib/modules
Call Stack (most recent call first):cmake/OpenCVModule.cmake:370 (_glob_locations)modules/CMakeLists.txt:7 (ocv_glob_modules)

解决方法

将opencv_contrib放到opencv-4.3.0之下

编译OpenCV提示opencv_contrib缺少boostdesc_bgm.i等文件

错误

~/opencv_contrib/modules/xfeatures2d/src/boostdesc.cpp:673:20: fatal error: boostdesc_bgm.i: No such file or directory

解决

方法0

进入 IPAddress.com 网站查询raw.githubusercontent.com真实地址。
打开 /etc/hosts,(需要使用管理员权限打开)
追加199.232.96.133 raw.githubusercontent.com如下:

方法1

1、手动下载
下载地址

2、拷贝到源码并生成同名文件,放到 opencv_contrib/modules/xfeatures2d/src/、 cd opencv-4.3.0/.cache/xfeatures2d/boostdesc/cd opencv-4.3.0/.cache/xfeatures2d/vgg/目录下即可

mv boostdesc_bgm.i opencv-4.3.0/.cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i
mv boostdesc_bgm_bi.i opencv-4.3.0/.cache/xfeatures2d/boostdesc/232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i
mv  boostdesc_bgm_hd.i opencv-4.3.0/.cache/xfeatures2d/boostdesc/324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i
mv boostdesc_lbgm.i opencv-4.3.0/.cache/xfeatures2d/boostdesc/0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i
mv boostdesc_binboost_064.i opencv-4.3.0/.cache/xfeatures2d/boostdesc/202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i
mv boostdesc_binboost_128.i opencv-4.3.0/.cache/xfeatures2d/boostdesc/98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i
mv boostdesc_binboost_256.i opencv-4.3.0/.cache/xfeatures2d/boostdesc/e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i
mv vgg_generated_48.i opencv-4.3.0/.cache/xfeatures2d/vgg/e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i
mv vgg_generated_80.i opencv-4.3.0/.cache/xfeatures2d/vgg/7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i
mv vgg_generated_64.i opencv-4.3.0/.cache/xfeatures2d/vgg/7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i
mv vgg_generated_120.i opencv-4.3.0/.cache/xfeatures2d/vgg/151805e03568c9f490a5e3a872777b75-vgg_generated_120.i

$ tree opencv-4.3.0/.cache/xfeatures2d/
opencv-4.3.0/.cache/xfeatures2d/
├── boostdesc
│   ├── 0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i
│   ├── 0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i
│   ├── 202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i
│   ├── 232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i
│   ├── 324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i
│   ├── 98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i
│   └── e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i
└── vgg├── 151805e03568c9f490a5e3a872777b75-vgg_generated_120.i├── 7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i├── 7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i└── e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i$ tree opencv-4.3.0/opencv_contrib/modules/xfeatures2d/src/
opencv-4.3.0/opencv_contrib/modules/xfeatures2d/src/
├── affine_feature2d.cpp
├── boostdesc_bgm_bi.i
├── boostdesc_bgm_hd.i
├── boostdesc_bgm.i
├── boostdesc_binboost_064.i
├── boostdesc_binboost_128.i
├── boostdesc_binboost_256.i
├── boostdesc.cpp
├── boostdesc_lbgm.i
├── brief.cpp
├── cuda
│   └── surf.cu
├── daisy.cpp
├── ellipticKeyPoint.cpp
├── fast.cpp
├── freak.cpp
├── generated_16.i
├── generated_32.i
├── generated_64.i
├── gms.cpp
├── harris_lapace_detector.cpp
├── latch.cpp
├── logos
│   ├── Logos.cpp
│   ├── Logos.hpp
│   ├── Match.cpp
│   ├── Match.hpp
│   ├── Point.cpp
│   ├── Point.hpp
│   ├── PointPair.cpp
│   └── PointPair.hpp
├── logos.cpp
├── lucid.cpp
├── msd.cpp
├── opencl
│   └── surf.cl
├── pct_signatures
│   ├── constants.hpp
│   ├── distance.hpp
│   ├── grayscale_bitmap.cpp
│   ├── grayscale_bitmap.hpp
│   ├── pct_clusterizer.cpp
│   ├── pct_clusterizer.hpp
│   ├── pct_sampler.cpp
│   ├── pct_sampler.hpp
│   └── similarity.hpp
├── pct_signatures.cpp
├── pct_signatures_sqfd.cpp
├── precomp.hpp
├── sift.cpp
├── stardetector.cpp
├── surf.cpp
├── surf.cuda.cpp
├── surf.hpp
├── surf.ocl.cpp
├── vgg.cpp
├── vgg_generated_120.i
├── vgg_generated_48.i
├── vgg_generated_64.i
├── vgg_generated_80.i
└── xfeatures2d_init.cpp

如果替换了还是在下载,就把下载的链接注释掉!!!!!类似下图

data: Download failed: 28;“Timeout was reached”

Make Warning at cmake/OpenCVDownload.cmake:202 (message):data: Download failed: 28;"Timeout was reached"For details please refer to the download log file:/home/oceanstar/workspace/opencv/build/CMakeDownloadLog.txtCall Stack (most recent call first):opencv_contrib/modules/face/CMakeLists.txt:13 (ocv_download)CMake Warning at opencv_contrib/modules/face/CMakeLists.txt:26 (message):Face: Can't get model file for face alignment.

替换,然后opencv_contrib/modules/face/CMakeLists.txt:13 (ocv_download)注释掉

fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件或目录

fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件或目录#include "features2d/test/test_detectors_regression.impl.hpp"

头文件include地址不对,解决方法如下:

将opencv-4.1.0/modules/features2d/test/文件下的

test_descriptors_invariance.impl.hpp
test_descriptors_regression.impl.hpp
test_detectors_invariance.impl.hpp
test_detectors_regression.impl.hpp
test_invariance_utils.hpp

拷贝到opencv_contrib-4.1.0/modules/xfeatures2d/test/文件下。

同时,将opencv_contrib-4.1.0/modules/xfeatures2d/test/test_features2d.cpp文件下的

#include "features2d/test/test_detectors_regression.impl.hpp"
#include "features2d/test/test_descriptors_regression.impl.hpp"

改成:

#include "test_detectors_regression.impl.hpp"
#include "test_descriptors_regression.impl.hpp"

将opencv_contrib-4.1.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp文件下的

#include "features2d/test/test_detectors_invariance.impl.hpp"
#include "features2d/test/test_descriptors_invariance.impl.hpp"

改成

#include "test_detectors_invariance.impl.hpp"
#include "test_descriptors_invariance.impl.hpp"

opencv2/xfeatures2d/cuda.hpp:没有那个文件或目录

下面的方法没有用,老老实实改目录吧【和上面的方法一样】


打开 /home/oceanstar/CLionProjects/opencv-3.4.0/modules/stitching 下的CMakeLists.txt

添加 : INCLUDE_DIRECTORIES("/home/oceanstar/CLionProjects/opencv-3.4.0/opencv_contrib/modules/xfeatures2d/include")

Checking for module ‘gtk±3.0’

– No package ‘gtk±3.0’ found

解决:

 yum install gtk3-devel

测试C程序

基础包

mkdir tt && cd tt
vi DisplayImage.cpp
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{if ( argc != 2 ){printf("usage: DisplayImage.out <Image_Path>\n");return -1;}Mat image;image = imread( argv[1], 1 );if ( !image.data ){printf("No image data \n");return -1;}namedWindow("Display Image", WINDOW_AUTOSIZE );imshow("Display Image", image);waitKey(0);return 0;
}
vi CMakeLists.txt
set(CMAKE_CXX_STANDARD 14)                               #设置c++标准为14
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

cmake 并测试如下:

[root@localhost tt]# cmake3 .
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenCV: /usr/local (found version "4.1.1")
-- Configuring done
-- Generating done
-- Build files have been written to: /root/tt[root@localhost tt]# make
Scanning dependencies of target DisplayImage
[ 50%] Building CXX object CMakeFiles/DisplayImage.dir/DisplayImage.cpp.o
[100%] Linking CXX executable DisplayImage
[100%] Built target DisplayImage[root@localhost tt]# ./DisplayImage lena.jpg
(Display Image:7859): Gtk-WARNING **: 09:04:15.519: cannot open display:

扩展包

#include <iostream>
#include <vector>#include <opencv2/xfeatures2d.hpp>
#include <opencv2/opencv.hpp>using namespace cv;
using namespace std;int main()
{Mat img = imread("/home/oceanstar/CLionProjects/object-detection-SIFT-master/image.png",cv::IMREAD_COLOR);Ptr<Feature2D> sift = xfeatures2d::SIFT::create();vector<cv::KeyPoint> keypoints;Mat descriptors;sift->detectAndCompute(img, cv::noArray(),keypoints, descriptors);cv::drawKeypoints(img,keypoints,descriptors,cv::Scalar(0, 255, 255));imshow("Result", descriptors);waitKey();return 0;
}

卸载

# make uninstall

pkg-config

pkg-config opencv4 --cflags --libs

编译OpenCV提示opencv_contrib缺少boostdesc_bgm.i等文件
test_detectors_regression.impl.hpp: 没有那个文件或目录

opencv:centos7中安装opencv4.3.0环境相关推荐

  1. 安装 opencv ubuntu_Ubuntu18.04安装 OpenCV4.3.0

    前段时间重新安装了Ubuntu,现在需要用OpenCV的时候发现自己忘记装了.自己写一个记录这样以后就不用每次都去找教程了. OpenCV官网: OpenCV​opencv.org OpenCV下载地 ...

  2. Ubuntu18.04下安装NVIDIA显卡驱动、docker、nvidia-docker;容器中编译安装opencv-4.4.0与darknet-yolov4并完成测试;容器封装镜像转移。2022

    记录一下第一次在CSDN发博客,欢迎大家光临~ 文章目录 前言 一.宿主机配置 1.安装Ubunntu18.04 64位系统 2.为宿主机系统更换国内软件源Ubuntu 官方源服务器在欧洲,国内访问很 ...

  3. Ubuntu18.04安装OpenCV4.3.0和环境配置(支持编译CUDA并安装配置python-opencv)

    Ubuntu18.04安装OpenCV4.3.0和环境配置 下载源文件 安装依赖 编译安装 环境配置 动态库配置 配置OpenCV的`PKG-CONFIG`环境 Python-OpenCV环境[如果安 ...

  4. windows+VS2017+opencv4.1.0环境配置

    网上有很多详细的教程,这里我这罗列一些需要注意的事项: windows+VS2017+opencv4.1.0 环境配置注意事项 1.添加系统环境变量 在添加系统环境变量的时候,至于是选vc14还是vc ...

  5. 树莓派 编译安装OpenCV4.1.0+opencv_contrib-4.1.0

    一.下载OpenCV4.1.0+opencv_contrib-4.1.0           树莓派下载文件比较慢可以用电脑先下载文件,下载地址:           OpenCV4.1.0下载地址: ...

  6. 【安装教程】Ubuntu18.04中用CMake-gui安装OpenCV4.1.0和OpenCV_contrib-4.1.0(图文)

    目录 一.简要说明 二.下载和添加依赖包 三.配置OpenCV 四.配置环境变量 新建一个 opecv.pc (勾选了就跳过此步骤,勾选生成的opencv4.pc 我印象中好像不用修改的,不放心可以打 ...

  7. 在Ubuntu20.04 LTS中安装OpenCV4.5.4

    文章目录 系统配置: 一.简介 二.安装方式 安装依赖项 三.下载OpenCV源程序 四. CMAKE配置和安装 五.安装后的环境配置 六.pkg-config及其应用 文献 系统配置: Intel® ...

  8. python下载安装教程3.8.0-windows中安装Python3.8.0的实现方法

    windows中安装Python3.8.0的实现方法 操作系统:Windows10 64bit Python版本:3.8.0 安装步骤: 双击安装文件python-3.8.0-amd64.exe 勾选 ...

  9. 开发人员学Linux(3):CentOS7中安装JDK8和Tomcat8

    题外话:直到今天开始写本系列的第三篇时本人才想好为这个系列取一个名字,本系列不是为Linux运维人员准备的,而是主要为开发人员准备的,包括但不限于: 希望了解Linux的开发人员: 需要在Linux上 ...

最新文章

  1. 京东8.27算法笔试-滚雪球(动态规划python)
  2. 【C++深度剖析教程39】实现C++数组类模板
  3. python--从入门到实践--chapter 11 代码测试unittest
  4. git 小乌龟 更新分支_git常用操作
  5. 1.5编程基础之循环控制 23 药房管理
  6. linux spidev 应用_嵌入式Linux设备树语法总结
  7. phpmyadmin设置编码和字符集gbk或utf8_导入中文乱码解决方法
  8. 用python写情书_《使用Python进行自然语言处理》学习笔记一 | 学步园
  9. 删除你的所有计算机文件的英文,删除Download和DataStore文件夹中的所有文件
  10. saoml流控开心版补丁
  11. async中的this指向问题
  12. PointNet++:Deep Hierarchical Feature Learning on Point Sets in a Metric Space
  13. Java高级开发0-1项目实战-青鸟商城-Day04
  14. Pytorch随记(3)
  15. ubuntu 查询程序崩溃日志_ubuntu查看系统日志及相关文件介绍
  16. 计算机excel新课导入,Excel导入文本文件的技巧
  17. 软件实施工程师职位大揭密
  18. QQ旋风自动关闭解决方法
  19. Freescale关于USB BDM MULTILINK调试器使用说明
  20. leetcode.84 leetcode739. 每日温度(都是单调栈)

热门文章

  1. 烤仔星选·newsletter | 简析无常损失(Impermanent Loss)
  2. python趣味编程入门与实战技巧_Python趣味编程入门与实战
  3. Le wagon编程训练营2021数据科学就业市场最全分析
  4. 决策树的生成与剪枝CART
  5. 有点厉害!用12万行代码堆出来个蔡徐坤,编译还能通过!
  6. 使用Python解析MNIST数据集(IDX格式文件)
  7. GIS学习教程资料整理
  8. 用户留存率分析 表设计
  9. 【项目--Hi3559A】Hi3559A平台仿真功能操作介绍
  10. DataWarehouse 数据仓库