本人github
首先opencv和opencv_contrib下载版本要一致!!!!!
网上很多教程都没有提到要下载对应版本的contrib版本,我前几次安装出现了很多问题,这次特意将自己安装教程和一些安装注意点总结出来。
opencv3.4.5官网安装教程
注意:选择 clone or download 的版本,不一定是你需要的。还容易混淆版本,主要容易出错
opencv下载官网:https://opencv.org/releases.html
本文下载的是opencv3.4.5,如下图所示:
注意:选择 clone or download 的版本,不一定是你需要的。还容易混淆版本,主要容易出错
opencv_contirb网址:https://github.com/opencv/opencv_contrib
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install build-essential qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenblas-base libopenblas-dev doxygen openjdk-8-jdk pylint libvtk6-dev
sudo apt-get install pkg-config
sudo unzip opencv-3.4.5.zip
sudo unzip opencv_contrib-3.4.5.zip
sudo cp -r opencv_contrib-3.4.5 opencv-3.4.5 #复制opencv_contrib到opencv目录下
cd opencv-3.4.5
sudo mkdir build #新建文件夹build
#ls
3rdparty cmake data LICENSE platforms
apps CMakeLists.txt doc modules README.md
build CONTRIBUTING.md include opencv_contrib-3.4.5 samples
cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv-3.4.5/opencv_contrib-3.4.5/modules/ -DOPENCV_ENABLE_NONFREE=True ..
注意:OPENCV_EXTRA_MODULES_PATH就是你 opencv_contrib-3.3.1下面的modules目录,请按照自己的实际目录修改地址。还有后面的两点不可省略!!
-DOPENCV_ENABLE_NONFREE=True这个非常重要,这个是安装opencv专利模块的语句。
但是在这个过程中会出现问题:
参考下面博客修改一些文件,但是注意一下opencv3.4.5ippicv为ippicv_2019_lnx_intel64_general_20180723,所需要的这两个文件已经上传到百度云中:
https://blog.csdn.net/CSDN330/article/details/86747867
链接:https://pan.baidu.com/s/1SPLRWlIGlRf0YMri2l7MOQ
提取码:haas
接下来就是漫长的等待了…
生成完毕提示类似如下:
-- Install path: /usr/local
--
-- cvconfig.h is in: /home/files/opencv-3.4.5/build
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/files/opencv-3.4.5/build
sudo make -j4 #4线程编译,可以根据你的情况设定线程数
接下来就是更漫长的等待了…具体时间因人而异,我的电脑跑了1个小时。如果看到下图,说明成功了。
sudo make install
结果图如下:
(1)安装成功后还需要设置opencv的环境变量。打开文件:
sudo gedit /etc/ld.so.conf.d/opencv.conf
(2)将空白文档中添加以下内容:
/usr/local/lib
(3)接下来配置库:
sudo ldconfig
(4)更改环境变量:
sudo gedit /etc/bash.bashrc
(5)在文件后添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
或者添加:
export PKG_CONFIG_PATH=/usr/local/opencv/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv/lib
(6)保存退出,在运行下面的例程之前,需要重新开启终端来使配置生效。
测试文档已经上传到百度云:
链接:https://pan.baidu.com/s/1EG8Hz9SnSnhgPBaSC3VJvA
提取码:uf2u
1.创建工作目录
mkdir ~/test
cd ~/test
gedit Image_show.cpp
2. Image_show.cpp编译如下代码
#include
#include //头文件
#include
using namespace cv; //包含cv命名空间
using namespace std;
int main()
{
//Create SIFT class pointer
Ptr f2d = xfeatures2d::SIFT::create();
//读入图片
Mat img_1 = imread("1.jpg");
Mat img_2 = imread("2.jpg");
//Detect the keypoints
vector keypoints_1, keypoints_2;
f2d->detect(img_1, keypoints_1);
f2d->detect(img_2, keypoints_2);
//Calculate descriptors (feature vectors)
Mat descriptors_1, descriptors_2;
f2d->compute(img_1, keypoints_1, descriptors_1);
f2d->compute(img_2, keypoints_2, descriptors_2);
//Matching descriptor vector using BFMatcher
BFMatcher matcher;
vector matches;
matcher.match(descriptors_1, descriptors_2, matches);
//绘制匹配出的关键点
Mat img_matches;
drawMatches(img_1, keypoints_1, img_2, keypoints_2, matches, img_matches);
imshow("【match图】", img_matches);
imwrite("final.jpg",img_matches);
//等待任意按键按下
waitKey(0);
}
3. 在test文件夹下创建CMake文件
gedit CMakeLists.txt
写入如下内容
cmake_minimum_required(VERSION 2.8)
project( test )
find_package( OpenCV REQUIRED )
add_executable( test Image_show.cpp )
target_link_libraries( test ${OpenCV_LIBS} )
4. 编译
cd ~/test
cmake .
make
5. 执行
此时test文件夹中已经产生了可执行文件test,下载1.jpg和2.jpg放在test文件夹下,运行
./test
6. 结果
图1.jpg:
图2.jpg:
参考自:
https://blog.csdn.net/xiangxianghehe/article/details/78780269
https://blog.csdn.net/u012704941/article/details/80396249
https://blog.csdn.net/qq_28467367/article/details/87933947