opencv3.0开始分成主库+contrib库,一些不稳定的不成熟的涉及专利纠纷的库文件放置在contrib库中,contrib需要用户单独安装。本文采用opencv3.4.1配置TX2,其他opencv版本可类推。具体操作如下:
下载opencv3.4.1及对应的contrib下载opencv3.4.1主模块source,地址:opencv./releases/page/2/
下载opencv3.4.1对应版本的contrib
地址:github./opencv/opencv_contrib/releases?after=4.0.0-beta
注意:opencv与从contrib版本必须保持一直。创建软件安装目录
2.1在home下创建MySoftware(任意命名)安装软件,创建opencv安装文件夹
cd /home/nvidia/MySoftware mkdir opencvcd /home/nvidia/MySoftware/opencv
主:nvidia为TX2的名称,需要替换成自己的
2.2将下载完成的opencv3.4.1解压至/home/nvidia/MySoftware/opencv,将contrib解压至opencv3.4.1,如下图:
进入opencv安装目录/home/nvidia/MySoftware/OpenCv/opencv-3.4.1,创建build文件夹
cd /home/nvidia/MySoftware/opencv/opencv3.4.1mkdir build
5.打开新终端,安装依赖项
依赖关系:
GCC 4.4.x or later
CMake 2.8.7 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
[optional] libtbb2 libtbb-dev
[optional] libdc1394 2.x
[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
注:官方文档中虽然说其中一些依赖包是可选的,但是最好还是都装上,以防出问题。
以上依赖包可用以下命令安装:
sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
opencv IPPICV 和 face_landmark_model.dat更改下载源
网络不好时, opencv IPPICV 和 face_landmark_model.dat下载容易失败,可在编译前参考如下博文处理
ubuntu16.04 配置TX2 过程中opencv IPPICV 和 face_landmark_model.dat下载不下来的问题解决
mp.csdn.net/mdeditor/97647529#
CMake Opencv源码:该步骤大约需要2小时左右
进入usr/local,创建opencv341目录,用于install
cd usr/localmkdir opencv341
进入build目录:`cd /home/nvidia/MySoftware/opencv/opencv3.4.1/build`在该目录下运行:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv341 -D OPENCV_EXTRA_MODULES_PATH=/home/nvidia/MySoftware/OpenCv/opencv-3.4.1/opencv_contrib-3.4.1/modules/ -D PYTHON_DEFAULT_EXECUTABLE=$(which python3) -D WITH_TBB=ON -D WITH_EIGEN=ON ..
运行完成后如下图,说明没有错误:
运行sudo make
完成后运行sudo make install
一切顺利,没有报错,至此安装完成,下面进行系统配置。
8. 完成上述步骤后,接着配置环境变量等操作
sudo gedit /etc/ld.so.conf.d/opencv.conf
添加安装目录下/usr/local/opencv346的lib目录路径,并保存,输入内容如下:
sudo ldconfigsudo gedit /etc/bash.bashrc
在bashrc文件末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv341/lib/pkgconfig
export PKG_CONFIG_PATH
9. 更新数据库
source /etc/bash.bashrc
sudo updatedb
如果updatedb报错,请参考:
ubuntu16.04 命令sudo updatedb报错: mand not found解决方案blog.csdn.net/qq_41854650/article/details/97638260
查看opencv版本:
pkg-config --modversion opencv
至此OpenCV 3.4.1+contrib安装+配置完成。
11.测试是否安装成功
opencv3.0开始中SIFT匹配是在opencv_contrib库中的,可以用它来做一个简单的测试。
参考:
QT的pro配置:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qtSOURCES += main.cppINCLUDEPATH += /usr/libaarch64-linux-gnuINCLUDEPATH += /usr/local/opencv341/include \
INCLUDEPATH += /usr/local/opencv341/include/opencv \
INCLUDEPATH += /usr/local/opencv341/include/opencv2LIBS += /usr/local/opencv341/lib/libopencv_*.so
LIBS += /usr/local/opencv341/lib/libopencv_*.so.3.4
LIBS += /usr/local/opencv341/lib/libopencv_*.so.3.4.1
程序:
#include <iostream>
#include <opencv2/opencv.hpp> //头文件
#include <opencv2/xfeatures2d.hpp>
#include <opencv2/xfeatures2d/nonfree.hpp>
using namespace cv; //包含cv命名空间
using namespace std;int main()
{//Create SIFT class pointerPtr<Feature2D> f2d = xfeatures2d::SIFT::create();//读入图片Mat img_1 = imread("1.jpg");Mat img_2 = imread("2.jpg");//Detect the keypointsvector<KeyPoint> 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->pute(img_1, keypoints_1, descriptors_1);f2d->pute(img_2, keypoints_2, descriptors_2);//Matching descriptor vector using BFMatcherBFMatcher matcher;vector<DMatch> matches;matcher.match(descriptors_1, descriptors_2, matches);//imshow("match", matches);//绘制匹配出的关键点Mat img_matches;drawMatches(img_1, keypoints_1, img_2, keypoints_2, matches, img_matches);imshow("【match图】", img_matches);//等待任意按键按下waitKey(0);
}
输出结果:
更多推荐
完美,方案,经典,QT
发布评论