1. 查看安装Opencv的版本、以及libs和cflags

$   pkg-config --modversion opencv
$ pkg-config --cflags opencv // 编译链接
$ pkg-config --libs opencv // 库链接

2. 卸载之前的Opencv版本

$   cd <your_opencv_source_files>/build
$ sudo make uninstall
$ cd .. && rm -rf build

3. 安装opencv_contrib----确保与安装的opencv版本一致

"记住:为方便Opencv的调用和读取,建立opencv的install文件夹"

$   sudo mkdir -p /usr/local/opencv410  (安装的是opencv-4.1.0)
$ cd <your_opencv_source_files>/build
$ sudo rm -rf * ## 如果之前安装了opencv再安装contrib就需要将之前的清除再重新安装
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv410 -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib>/modules/ .. "备注:注意如果要安装opencv_contrib模块,确保将之前build文件下的内容删除,然后再重新编译,否则你就会出错!---ERROR2" $ cmake-gui
##另外,如果你要使用nonfree模块里面的特征点提取等相关内容,请使用cmake-gui 编译勾选参数OPENCV_ENABLE_NONFREE,另外其他参数跟前面一样 ----ERROR1
$ sudo make -j8
$ sudo make install

4. CMakeLists.txt 调用OpenCV链接库和头文件

    set(CMAKE_PREFIX_PATH "/usr/local/opencv410/lib/cmake/opencv4")
## 或者用以下方式设定opencv4的构建路径
set(OpenCV_DIR "/home/ian/tools/slam_libraries/opencv-4.1.0/build")
find_package(OpenCV 4 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(*** ${OpenCV_LIBS})

5. 编译过程中遇到的两个错误,若按照以上方式安装可避免下述错误

ERROR1: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create';

ERROR2: error: ‘linemod’ was not declared in this scope template<> struct pyopencvVecConverter<linemod::Match>;

[参考链接]:

1. Ubuntu+OpenCV

2. ubuntu卸载OpenCV+Contribute

Author: Ian
星期六, 13. 七月 2019 10:04上午

OpenCV多版本切换和配置--opencv 安装与卸载、添加 opencv_contrib modules 以及 OpenCv 多版本切换的更多相关文章

  1. python pip ,安装,卸载,查看等命令,不同版本

    pycharm及python的使用说明   Python和 pycharm的使用 1. pycharm和Python 下载 安装后需要激活码.判断Python是否安装好了,cmd下跑: python ...

  2. Opencv 2.4.9在Ubuntu下的配置与安装

    [原]Opencv 2.4.9在Ubuntu下的配置安装  Opencv 2.4.9在Ubuntu下的配置与安装 surgewong@gmail.com http://blog.csdn.net/su ...

  3. OpenCV+VS 2015开发环境配置

    最近跑C程序,头文件中用到了OpenCV中的文件,找了很多篇OpenCV+VS的环境配置,发现如下这篇写的最为详细,特转载来自己的博客中留存,并附上原博客地址如下 OpenCV学习笔记(一)——Ope ...

  4. QT + OpenCV + MinGW 在windows下配置开发环境

           由于研究项目需要,最近开始接触C++界面设计,关于“QT + OpenCV + MinGW在windows下配置开发环境”着实让人头疼,单次配置时间相当长,也十分不容易,本人第一次配置成 ...

  5. Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试

    由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...

  6. OpenCV 4.1 编译和配置

    OpenCV 4.0 版本,历时3年半,终于在2018年圣诞节前发布了,该版本增加的新功能如下: 1) 更新代码支持 c++11 特性,需要兼容 c++11 语法的编译器 2)增加 dnn 中的模块功 ...

  7. OpenCV编译以及QT Creator配置

    OpenCV编译以及QT Creator配置 在进行编译前,需下载以下工具和源码: CMake ---- 用于编译: 下载地址; https://cmake.org/ 安装在D:\Program Fi ...

  8. 走近OPENCV // opencv 2.4.9+vs2013配置

    一直很懒去配opencv,这几周忍不了终于抽空来配了一下环境... 用的是旧版opencv2.4系列,最新到3.0了,之后再看看教程不知道有什么特别大的区别. (FF14国服没有4.0 // 8.19 ...

  9. OpenCV使用CMake和MinGW的编译安装

    官方教程:https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows 软件环境: Qt:5.11 CMake-3.14.4 OpenCV-4.1. ...

随机推荐

  1. 什么是OTC?

    OTC(Over The Counter)非处方药物,我国卫生部医政司是这样定义的:它是消费者可不经过医生处方,直接从药房或药店购买的药品,而且是不在医疗专业人员指导下就能安全使用的药品,即不需要凭借 ...

  2. JS浏览器滚轮事件实现横向滚动照片展

    if(window.attachEvent){ ///*IE8注册事件*/ this.oc.attachEvent('onmousewheel',function(e) { //函数体 }); } e ...

  3. Mongodb Compile C++ Driver

    之前发现直接编译mongo源码中的驱动,静态库的驱动会很大,在链接使用的时候会报很多链接错误. 转而直接编译单独提供驱动源码,同样vc2008的版本也要做我的另一篇博文中修改,在这不多说,具体参见: ...

  4. Elasticsearch教程(二)java集成Elasticsearch

    1.添加maven <!--tika抽取文件内容 --> <dependency> <groupId>org.apache.tika</groupId> ...

  5. LINUX下QT FOR ARM开发环境搭建过程 (使用qt-x11-opensource-src-4.5.2.tar.gz进行编译)

    在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括了Qt Designer等基本工具,用于在PC上对程序的开发调试,使我们能确保程序放到 ...

  6. Codility--- Triangle

    Task description A zero-indexed array A consisting of N integers is given. A triplet (P, Q, R) is tr ...

  7. Android native进程间通信实例-binder篇之——简单的单工通信

    网上找了很多binder相关文章,大部分都是在跟踪binder实现源代码,然后再把框架代码贴出来,看着实在费力. 这篇文章从实际出发,直接用一个案例下手,后续想了解binder相关原理的话,可以参考& ...

  8. NSCache缓存怎么来的

    什么是NSCache NSCache主要用来存储临时数据(键值对),当内存资源不够时,系统会自动释放部分数据.它有三个特点: • NSCache为了保持不占用过多的系统内存,它有多种自动回收内存策略: ...

  9. springboot 集成完整的swagger2

    springboot 在集成swagger中会不会遇到各种问题: 1.swagger  进行接口鉴权(比如设置header的token,接口进行拦截处理). 2.swagger 进行实体属性解析(po ...

  10. HBase 学习之路(十)—— HBase的SQL中间层 Phoenix

    一.Phoenix简介 Phoenix是HBase的开源SQL中间层,它允许你使用标准JDBC的方式来操作HBase上的数据.在Phoenix之前,如果你要访问HBase,只能调用它的Java API ...