1.OpenCV2源码安装

安装依赖项

sudo apt-get install build-essential  //build-essential是c语言的开发包,包含了gcc make gdb和libc函数库
sudo apt-get install cmake git libgtk2.-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev //安装cmake git等依赖项
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394--dev

下载源码

https://opencv.org/releases/page/4/

解压源码

mkdir build //在opencv2.4.13新建build文件夹
cd build
cmake .. //用来生成makefile文件
make //makefile文件调用编译器
sudo make install //安装opencv在默认位置,usr/local/ bin、lib、include 存放文件

查看安装的版本

pkg-config opencv --modversion

2.OpenCV3和contrib源码安装

下载源码(两个的版本需要保证一样),解压

https://github.com/opencv

安装Cmake-gui // cmake图像化界面,方便操作,并不是必须的

sudo apt-get install camke-qt-gui
mkdir build
cd build
cmake-gui \\不用gui,可以写修改cmakew文件 或者 指定参数,但我觉得这样都不太方便
点击configure 现实configure done 后 generate 等待 generate done

网络原因:IPPICV下载失败,可以提前下载好,地址:

https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_lnx_intel64_general_20180518.tgz

打开,/home/zsm/source/opencv-4.0.0/3rdparty/ippicv下的 ippicv.cmake,将下面地址 修改为刚才保存的地址

例如:

"file:/home/lxd/source/
     

不打开nonfree开关,会导致:

OpenCV(3.4.3) /home/lxd/OperCV3.4/opencv-3.4.3/opencv_contrib-3.4.3/modules/xfeatures2d/src/sift.cpp:1205: error:The function/feature is not implemented

make
sudo make install

3.测试

#include <iostream>
#include <opencv2/opencv.hpp> //头文件
#include <opencv2/xfeatures2d.hpp>
using namespace cv; //包含cv命名空间
using namespace std; int main()
{
//Create SIFT class pointer
Ptr<Feature2D> f2d = xfeatures2d::SIFT::create();
//读入图片
Mat img_1 = imread("1.png");
Mat img_2 = imread("2.png");
//Detect the keypoints
vector<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->compute(img_1, keypoints_1, descriptors_1);
f2d->compute(img_2, keypoints_2, descriptors_2);
//Matching descriptor vector using BFMatcher
BFMatcher matcher;
vector<DMatch> 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);
//等待任意按键按下
waitKey();
}

重要:

OpenCV版本的切换:关键文件:OpenCVConfig.cmake。在opencv编译好后,所在目录中一般会有一个叫OpenCVConfig.cmake的文件,在安装目录里面

这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等,比如其中一行:

在find_package前面加上一句set,如下:

如果要用原来的opencv2,删掉这一句,只需find_package

cmake_minimum_required(VERSION 2.8)

set(OpenCV_DIR "/usr/opencv3.4/share/OpenCV")

find_package(OpenCV REQUIRED)
include_directories(${OPenCV_INCLUDE_DIRS})
add_executable(opencvInstallTest opencv3-4Test.cpp)
target_link_libraries(opencvInstallTest ${OpenCV_LIBS})

请仔细阅读!有问题评论。

ubutnu同时安装OpenCV2和OpenCV3及contrib的更多相关文章

  1. 【opencv安裝】opencv2和opencv3共存——安装opencv2和opencv3到指定目录

    安装 opencv2和opencv3共存会导致运行时问题,须分开 下载源码 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/hom ...

  2. opencv3.1+contrib的配置大总结(配置了两天,遇到问题无数)

    开门见山的说:别用opencv3.0,这个版本添加扩展库不怎么好,能不能成功我不敢说,我是试了无数次都不行!!! 我的配置:W7+64位+opencv3.1+Cmake3.7.2 下载 下载什么的大家 ...

  3. Linux Ubuntu12.04下安装OpenCv2.4.10

    参考 http://blog.sina.com.cn/s/blog_53b0956801010lfu.html 捣鼓了一个晚上了,OpenCv还没装好,本来以为看个类似的比如Ubuntu安装OpenC ...

  4. VC 2008 Express下安装OpenCV2.3.1

    VC 2008 Express下安装OpenCV2.3.1   注意: 下列文档以VC2008 Express为例,VC2010下的配置应与本文档类似. VC 6.0不被OpenCV 2.3.1支持. ...

  5. vs2008安装opencv2.4.6

    最近安装opencv2.4.6,发现犯了一个很愚蠢的错误,在此记录一下. opencv的头文件包含应该位于build文件夹内,而我误将opencv文件夹下的include包含了进去,造成无法找到头文件 ...

  6. Ubuntu14.04 64位机上安装OpenCV2.4.13(CUDA8.0)版操作步骤

    Ubuntu14.04 64位机上安装CUDA8.0的操作步骤可以参考http://blog.csdn.net/fengbingchun/article/details/53840684,这里是在已经 ...

  7. CentOS上编译安装OpenCV-2.3.1与ffmpeg-2.1.2

    已測试环境: CentOS 6.3 32bit CentOS 6.5 64bit 以前在CentOS 6.3 32bit安装过OpenCV,參见CentOS 6.3中安装OpenCV2.3.1,现在换 ...

  8. OpenCV2 与opencv3 问题解决

    本文链接:https://blog.csdn.net/ling_xiobai/article/details/79691785今天使用opencv运行一个脚本,但是出现cv2.cv.BoxPoints ...

  9. ubuntu16.04安装opencv2.4.13

    1.更新 sudo apt-get update sudo apt-get upgrade 2.安装关联库 2.1 搭建C/C++编译环境 sudo apt-get install build-ess ...

随机推荐

  1. 前端批量迁移NAS存储

    在实际生产中,老的NAS存储无法扩容,需要迁移到新的存储,种种原因只能前端迁移. 系统:Linux 容量:1.5T 为了减少对生产系统的影响. 1.提前将老的存储数据备份到新的存储上: 2.正试割接存 ...

  2. CentOS 7添加开机启动服务脚本

    一.添加开机自启服务 在CentOS 7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例): systemctl enable jenkins.service #设置jenkins服务 ...

  3. swiper保存

    //初始化swiper var index=0; if(sessionStorage.getItem("index")){ index=sessionStorage.getItem ...

  4. js 中使用typeof

    >typeof(null) <"object" 对null执行typeof预算,结果返回字符串'object',也就是说,可以将null认为是一个特殊的对象值,含义是“ ...

  5. PHP入门培训教程 PHP变量及常量

         一.PHP5.4的基本语法格式 1.PHP的分割符 $php=true; //分号结束语句 if($php){ echo "真"; //分号结束语句 } //大括号结束语 ...

  6. guava中Multimap、Multiset使用

    guava中的Multimap接口 Multimap和java.util.Map接口没有任何继承关系.同Map一样,也是放键值对,但是Multimap的值是一个集合.同样支持泛型,假如键值对的key的 ...

  7. Codeforces 963A Alternating Sum ( 思维 && 数论 )

    题意 : 题目链接 分析 : Tutorial 讲的很清楚 至于为什么这样去考虑 算是一个经验问题吧 如果一个问题要你给出模意义下的答案 就多考虑一下答案是要用逆元构造出来 也就说明有除法的存在 那么 ...

  8. NOIP游(GUNCU)记

    小学奥数不会做 状压DP打不出 一脸懵逼 本来抱着一个拿省一的心态去考的,结果DAY1刚开始就爆炸了. T1居然想了半个小时多没思路,然后打了个表,可能是应为太紧张了吧,居然打了表之后还没有看出规律来 ...

  9. Ubuntu16.04 同时连接无线网络和以太网端口

    背景: 激光雷达VLP16通过以太网线连接电脑.在本博客所述的设置之前,一旦连接以太网线,本机(dell笔记本)的无线网络立即断开,即无法同时连接无线网络和以太网端口. 问题查找: 命令行  $ ip ...

  10. gridbagsizer

    #coding:utf-8 import wx labels='1 2 3 4 5 6 7 8 9 '.split() class TestFrame(wx.Frame): def __init__( ...