多版本opencv 兼容

https://blog.csdn.net/learning_tortosie/article/details/80594399

多版本OpenCV共存

假设我们已经安装好一版OpenCV,一般都安装在/usr/local下。
如果需要安装另一个版本的OpenCV,就不能再安装到/usr/local,而是选择其他路径,否则会覆盖掉之前的版本。
下载OpenCV

首先去https://opencv.org/releases.html下载所需版本的Sources版,也可去https://github.com/opencv/opencv/tree/3.4.1下载。
假设我们安装的第二个OpenCV版本为3.4.1。
安装依赖包

[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

编译安装OpenCV

详见官方文档https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html,参考步骤如下。

$ cd opencv-3.4.1
$ mkdir build
$ cd build
$ mkdir installed
$ cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=~/opencv-3.4.1/build/installed \
\
-DWITH_CUDA=OFF \
\
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \ 
..
$ make -j4
$ sudo make install

说明
1. 其中~/opencv-3.4.1/build/installed为安装OpenCV3.4.1的路径,这个十分关键。
2. 设置OFF的理由如下,可大大加快编译速度,当然还要根据需求进行设置。

    It is useful also to unset BUILD_EXAMPLES, BUILD_TESTS, BUILD_PERF_TESTS - as they all will be statically linked with OpenCV and can take a lot of memory.
    此外,还可以取消设置BUILD_EXAMPLES,BUILD_TESTS和BUILD_PERF_TESTS,因为它们都将与OpenCV静态链接,并且会占用大量内存。

多版本OpenCV切换

打开~/.bashrc

$ gedit ~/.bashrc

在文件末尾增加以下内容

export PKG_CONFIG_PATH=~/opencv-3.4.1/build/installed/lib/pkgconfig
export LD_LIBRARY_PATH=~/opencv-3.4.1/build/installed/lib

更新~/.bashrc

$ source ~/.bashrc 

查询OpenCV版本

$ pkg-config --modversion opencv

如果输出3.4.1,就表明配置成功。
如果想使用之前的版本,在~/.bashrc中注释掉增加的内容,然后source ~/.bashrc即可。

如果只有一个版本的OpenCV,在CMakeList.txt中使用以下语句即可。

FIND_PACKAGE(OpenCV REQUIRED)

在OpenCV编译好后,所在目录中会生成OpenCVConfig.cmake文件,这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等。
存在多版本OpenCV时,需要找到所需版本对应的OpenCVConfig.cmake文件,并将其路径添加到工程的CMakeLists.txt中。
示例如下:

cmake_minimum_required(VERSION 2.8)  
set(OpenCV_DIR "~/opencv-3.4.1/build")   
project(test)  
find_package(OpenCV REQUIRED) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server 中 JSON_MODIFY 的使用

SQL Server 中 JSON_MODIFY 的使用IntroSQL Server 从 2016 开始支持了一些 JSON操作,最近的项目里也是好多地方直接用字段直接存成了 JSON,需要了解一下怎么在SQL Server 中操作 JSON.JSON支持适用于 SQL Server 2016 及以上版本 和 Azure SQL Database…

TypeScript 3.7稳定版发布

TypeScript 3.7 发布了,此版本带来了许多新特性。Optional Chaining首先一大亮点是 Optional Chaining,这是社区呼唤特别强烈的一个 ECMAScript 特性。最初它是 TypeScript 的 issue 跟踪器上第 16 个 issue,于 5 年前提交,要知道…

Ubuntu 16.04 安装 cuda 7.5.run BEGIN failed--compilation aborted at ./cuda-installer.pl line 5

sudo apt install freeglut3-dev build-essential libx11-dev libxmu-dev \ libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libglfw3-dev libgles2-mesa-dev

.NET手撸绘制TypeScript类图——上篇

.NET手撸绘制TypeScript类图——上篇近年来随着交互界面的精细化, TypeScript越来越流行,前端的设计也越来复杂,而 类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式。许多工具都能生成 C#类图,有些工…

阅读源码学设计模式-单例模式

有些编码套路是公认的,大家都参照其编写符合可观赏性的代码,那就是设计模式现在.NETcore 默认提供了DI功能,那我想设计一个全局的引擎类,进行注入服务、解析服务、配置中间件。并且要求该引擎类全局唯一,其他地方不能进…

word 中同样的字号和行距倍数,不一样的行距

https://blog.csdn.net/missingu1314/article/details/24430165 http://www.xyduan.net/the-same-single-line-spacing-line-spacing-is-different/ 两篇文档,都是小四号字,都是单倍行距,可是行距明显不同,把其中的一个文档的一…

我终于知道post和get的区别

IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。码农:你知道get和post请求到底有什么区别&am…

【译】使用Blazor构建桌面应用

随着最近.NET Core 3的正式发布,我认为我会尝试一个有趣的小实验。我喜欢使用Electron来创建基于Web的桌面应用程序。我想了解有关Blazor(ASP.NET系列的最新成员)的更多信息。在这篇文章中,我将向您确切演示如何在15分钟内开始使用…

CAP的学习和应用

前言:用CAP有一段时间了,这里简单记录一下,这么好用的东西,小伙伴们赶紧上车吧一.CAP使用场景?平时工作中经常使用到MQ,如(kafka,rabbitmq...),用来简单的发布/订阅,经常会遇到以下几个问题常用方案,把SQL放前面,MQ放后面,MQ执行失败了,我们把整个SQL进行回滚,这种方案在单应用…

darknet activate_array

void activate_array(float *x, const int n, const ACTIVATION a) { int i; for(i 0; i < n; i){ x[i] activate(x[i], a); } }

[功能发布]Excel催化剂地图可视化功能正式发布,欢迎使用!

地图可视化功能开发完成已过去1个多月&#xff0c;文章的阅读量与初定传播目标相差甚远。但因着热爱分享的缘故&#xff0c;在阅读量未及预期时&#xff0c;仍然破例对其功能进行发布。若真正喜爱Excel催化剂所开发的地图可视化&#xff0c;可通过完成小任务来获取使用资格。再…

WebAssembly生态将完善网络安全性

近日 Mozilla、Fastly、Intel 与 Red Hat 宣布成立联合组织 Bytecode Alliance&#xff08;字节码联盟&#xff09;&#xff0c;该联盟旨在通过协作实施标准和提出新标准&#xff0c;以完善 WebAssembly 在浏览器之外的生态。WebAssembly 也叫 Wasm&#xff0c;它是为基于栈的虚…

/usr/lib/sudo/sudoers.so must be only be writable by owner

https://askubuntu.com/questions/92556/how-do-i-boot-into-a-root-shell 如果你连 sudo su 都无法获取权限&#xff0c;那么只能&#xff1a; 在boot 之后立刻按 Esc or Shift&#xff0c;进入 Ubuntu Recovery Mode 然后 "Enable networking" -> "Dro…

我们终于可以把 bug 留给子孙后代了

“ 阅读本文大概需要 4 分钟。 ”今天在聊项目之前&#xff0c;我们先来聊一下历史。中学时候拿到的第一本历史书&#xff0c;上面是从智人的起源讲起的&#xff0c;他轻轻掠过尧舜禹&#xff0c;秦始皇统一六国&#xff0c;千古一相李斯。他喊二川溶溶&#xff0c;流入宫墙。五…

30分钟无坑部署K8S单Master集群

Jesse导读&#xff1a;11月9号&#xff0c;我在中国.NET开发者峰会&#xff08;.NET Conf China 2019)上分享了之前ASP.NET Core和Kubernetes做微服务的经验&#xff0c;在10号的时候又联合张善友、陈计节两位大佬一起做了一个6个小时的动手实践&#xff0c;得到了非常好的反馈…

pip 安装 imagecodecs 失败

很多类似问题都是需要 pip install --user --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple 再重新安装

亲自实践Blazor构建桌面应用程序

首先是安装.NET Core 3.0 与Node.js.Net Core 版本为&#xff1a;3.0.100Node.js安装版本为&#xff1a;v12.13.0用到的8个命令mkdir blazor-electron-democd blazor-electron-demodotnet new blazorserver --no-httpsdotnet add package ElectronNET.APIdotnet new tool-manif…

CUDA Eclipse Nsight 不能打开工程 an error has occurred see the log file

解决方法&#xff1a; 打开Linux终端&#xff0c;输入命令&#xff1a; echo export PATH/usr/local/cuda-10.0/bin/:$PATH>>~/.bashrc echo export LD_LIBRARY_PATH/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH>>/.bashrc source ~/.bashrc

行云万里,转型未来 | 行云创新受邀参加2019中国.NET开发者峰会

2019 年 11 月 9 日&#xff0c;中国 .NET 开发者峰会&#xff08;.NET Conf China 2019&#xff09;在上海拉开帷幕&#xff0c;这是中国 .NET 社区的年度盛会。行云创新受邀参加了此次峰会&#xff0c;为当前最热门的科技专题带来了精彩的演讲&#xff0c;与全国的 .NET 开发…