社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
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依赖【必须】
这个很慢,可以源码下载,然后编译安装
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 ..
cd opencv-4.3.0/
mkdir build
cd build
cmake -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
- 支持Vedio4Linux(是Linux中关于视频设备的内核驱动,为针对视频设备的应用视频设备的应用程序提供一系列接口函数,这些视频设备包括TV卡、视频捕捉卡和USB摄像头等,对于USB摄像头,其驱动程序中需要提供基本的I/O操作用于open、read、write、close函数的实现),默认为ON
- Install C examples, 默认为off
- Install Python examples, 默认为off
- Build all examples, 默认为off
/ #支持QT(c++图像用户界面开发框架,多用于开发GUI),默认为off
- 支持跨平台通用图形工具包GTK, 默认为on
- 支持开放图形库OpenGL,默认为off …
- Linux下我们使用opencv,需要使用pkg-config来进行环境变量的管理,这个软件需要.pc类型的文件作为软件配置信息
生成opencv.pc文件的配置(注意,opencv4生成的文件叫做opencv4.pc)
CMake Error at cmake_install.cmake:41 (file):
file cannot create directory: /usr/local/share/licenses/opencv3. Maybe
need administrative privileges.
需要su权限
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
进入 IPAddress.com 网站查询raw.githubusercontent.com真实地址。
打开 etchosts
,(需要使用管理员权限打开)
追加199.232.96.133 raw.githubusercontent.com如下:
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 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_contrib/modules/xfeatures2d/src/boostdesc.cpp:673:20: fatal error: boostdesc_bgm.i: No such file or directory
进入 IPAddress.com 网站查询raw.githubusercontent.com真实地址。
打开 /etc/hosts
,(需要使用管理员权限打开)
追加199.232.96.133 raw.githubusercontent.com如下:
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
如果替换了还是在下载,就把下载的链接注释掉!!!!!类似下图
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.txt
Call 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: 没有那个文件或目录
#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"
下面的方法没有用,老老实实改目录吧【和上面的方法一样】
打开 /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")
– No package ‘gtk±3.0’ found
解决:
yum install gtk3-devel
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 opencv4 --cflags --libs
编译OpenCV提示opencv_contrib缺少boostdesc_bgm.i等文件
test_detectors_regression.impl.hpp: 没有那个文件或目录
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!