opencv4.0.0+cmake编译(含contrib)
https://blog.csdn.net/bobo184/article/details/88749651
前言
笔者环境:win10+vs2015+cmake3.8.2
介绍下4.0.0的新特性,沿用官网的说明:
在发布3.0版的近3.5年后,我们很高兴推出4.x系列的第一个稳定版本。
版本特性:
OpenCV现在是C ++ 11库,需要兼容C++ 11标准的编译器。所需的最低CMake版本已提升至3.5.1。
很多OpenCV 1.x的C API已被删除
在核心模块中延续性(在XML,YAML或JSON中存储和加载结构化数据)已在C ++中完全重新实现,并且也去掉了C API。
添加了新的模块G-API,它可以作为非常高效的基于图形的图像处理流水线的引擎。
dnn模块使用OpenVINO™工具包R4中的深度学习部署工具包(Deep Learning Deployment Toolkit)进行了更新。请参阅指南如何构建和使用支持DLDT的OpenCV。
dnn模块现在包括实验性Vulkan后端,并支持ONNX格式的网络。
流行的Kinect Fusion算法已实现,并针对CPU和GPU(OpenCL)进行了优化
QR图码检测器和解码器已添加到objdetect模块中
非常高效且高质量的DIS密集光流算法已从opencv_contrib转移到视频模块。
更多细节可以在之前的宣布中找到:4.0-alpha,4.0-beta,4.0-rc和更新日志
1、下载
在opencv的官网或者opencv的github上都可以下载,笔者在GitHub上下载。
下载扩展库
打开opencv的GitHub,如下:
下载完解压得到,下面开始编译(玩cv自己不会编译是不行的):
2、cmake编译
在opencv目录下,新建一个文件夹newbuild,接下来编译的结果将存放在这个目录下。
(1)cmake配置与生成
等待一段时间,
中间部分报错,比如python版本不对,想先忽略不用它。
接下来添加扩展库contrib的module
-----------------------------------------------------------------------------------------------没有cuda版本---------------------------------------------------------------------------------------
添加生成dll
重新点击一次,
然后点击generate,开始下载各种需要的依赖,最好开下载代理更快。
等待一段时间,generate done,所有的红色就会没有,否则只能重新生成了。
--------------------------------------------------------------------------有cuda版本----------------------------------------------------------------------------------------------------
https://blog.csdn.net/omg_orange/article/details/98068001
次配置后,出现一片红色,再点一次配置就变白了。变白后改变其中的三个选项:
1.注意勾选WITH_CUDA(带了cuda后,以后发布程序到其他电脑上都要带cuda的DLL文件,所以慎重选择)
2.不勾选BUILD_opencv_world选项
3.在OPENCV_EXTRA_MODULES_PATH选项中,填写opencv_contrib解压目录下,modules文件夹的路径,这样就把opencv_contrib编译进去了。
4 如果你想用 SURF,SIFT算法的话需要把 OPENCV_ENABLE_NONFREE 勾上
开启cuda
添加扩展库
再次点击 配置,等待结束
Generate按键,生成vs工程文件了。 生成完毕之后在 “ Configuring done"下面会出现”Generating done"。
结束后,之后直接点击“Open Project",便会使用VS2019打开工程。
(2)vs编译生成install
打开build下的的OpenCV.sln文件,
找到CmakeTargets下的install,右击 点击 生成,。
分别编译Release版本和Debug版本,最后可以在指定输出文件夹下的install文件夹下找到编译输出内容
(3)重新配置opencv,环境变量/依赖项等等
这里就驾轻就熟了,和以前的版本一样,
添加环境变量到path
然后打开vs2015,打开属性管理器,
点击Debug x64下的第一个,打开属性
包含目录为:
install\include
install\include\opencv2
install是刚才上面生成的
然后是链接器下 输入
lib文件带d的是debug模式下的,没有就是release模式,
笔者这里是debug模式下的,release没有编译,如过需要,和前面的步骤差不多。
回到前面这张图,重新生成。
debug版本 400
opencv_aruco400d.lib
opencv_bgsegm400d.lib
opencv_bioinspired400d.lib
opencv_calib3d400d.lib
opencv_ccalib400d.lib
opencv_core400d.lib
opencv_datasets400d.lib
opencv_dnn_objdetect400d.lib
opencv_dnn400d.lib
opencv_dpm400d.lib
opencv_face400d.lib
opencv_features2d400d.lib
opencv_flann400d.lib
opencv_fuzzy400d.lib
opencv_hfs400d.lib
opencv_highgui400d.lib
opencv_img_hash400d.lib
opencv_imgcodecs400d.lib
opencv_imgproc400d.lib
opencv_line_descriptor400d.lib
opencv_ml400d.lib
opencv_objdetect400d.lib
opencv_optflow400d.lib
opencv_phase_unwrapping400d.lib
opencv_photo400d.lib
opencv_plot400d.lib
opencv_reg400d.lib
opencv_rgbd400d.lib
opencv_saliency400d.lib
opencv_shape400d.lib
opencv_stereo400d.lib
opencv_stitching400d.lib
opencv_structured_light400d.lib
opencv_superres400d.lib
opencv_surface_matching400d.lib
opencv_text400d.lib
opencv_tracking400d.lib
opencv_video400d.lib
opencv_videoio400d.lib
opencv_videostab400d.lib
opencv_xfeatures2d400d.lib
opencv_ximgproc400d.lib
opencv_xobjdetect400d.lib
opencv_xphoto400d.lib
relase版本 400
opencv_aruco400.lib
opencv_bgsegm400.lib
opencv_bioinspired400.lib
opencv_calib3d400.lib
opencv_ccalib400.lib
opencv_core400.lib
opencv_datasets400.lib
opencv_dnn_objdetect400.lib
opencv_dnn400.lib
opencv_dpm400.lib
opencv_face400.lib
opencv_features2d400.lib
opencv_flann400.lib
opencv_fuzzy400.lib
opencv_hfs400.lib
opencv_highgui400.lib
opencv_img_hash400.lib
opencv_imgcodecs400.lib
opencv_imgproc400.lib
opencv_line_descriptor400.lib
opencv_ml400.lib
opencv_objdetect400.lib
opencv_optflow400.lib
opencv_phase_unwrapping400.lib
opencv_photo400.lib
opencv_plot400.lib
opencv_reg400.lib
opencv_rgbd400.lib
opencv_saliency400.lib
opencv_shape400.lib
opencv_stereo400.lib
opencv_stitching400.lib
opencv_structured_light400.lib
opencv_superres400.lib
opencv_surface_matching400.lib
opencv_text400.lib
opencv_tracking400.lib
opencv_video400.lib
opencv_videoio400.lib
opencv_videostab400.lib
opencv_xfeatures2d400.lib
opencv_ximgproc400.lib
opencv_xobjdetect400.lib
opencv_xphoto400.lib
然后确定就行了。
(4)测试
新建工程-添加源文件-简单代码(sift特征检测)
代码如下:
#include <iostream>
#include <vector>
#include <opencv2/xfeatures2d.hpp>
#include <opencv2/xfeatures2d/nonfree.hpp>
#include <opencv2/highgui.hpp> using namespace cv;
using namespace std; int main() {
Mat src = imread("F:/vs_test/lena.jpg"); if (src.data == NULL)
{
cout << "No exist" << endl;
return -1;
}
namedWindow("input image", WINDOW_AUTOSIZE);
namedWindow("output image", WINDOW_AUTOSIZE);
imshow("input image", src);
Ptr<Feature2D> sift = xfeatures2d::SIFT::create(400); //括号参数越大越精确,自定
vector <KeyPoint> keypointsa;
Mat a; sift->detectAndCompute(src, noArray(), keypointsa, a); //得到特征点和特征点描述
drawKeypoints(src, keypointsa, src);//画出特征点 //显示
imshow("output image", src); waitKey();
return 0;
}
opencv4.0.0+cmake编译(含contrib)的更多相关文章
- Centos 7 编译安装llvm 8.0.0
参考连接:https://www.cnblogs.com/BinBinStory/p/7499527.html https://blog.csdn.net/llwy1428/article/detai ...
- OpenCV.3.4.6_VS2015&cmake编译x86版本的bin&lib
ZC:<<OpenCV3编程入门>> 的 2.2.2 中也有该内容的讲解 1.参考网址:opencv3.3.0+vs2015+cmake编译opencv x86 - wowo的 ...
- win10 cmake编译 opencv4.0 + pyhton3.7x64
在超极本上本来不想编译了,反正没有cuda.但发现即使下载的opencv_contrib也不包含sift等等nonfree库了,要自己编译开编译选项才可以.坑啊,自己编译吧.反正opencv已经这么庞 ...
- CMake编译OpenCV4.0时opencv_ffmpeg.dll等下载失败的解决思路总结
一.Configure会报一些红色的警告信息,比如: 1 CMake Warning at cmake/OpenCVDownload.cmake:193 (message): 2 FFMPEG: Do ...
- 在Ubuntu 16.04 上编译安装OpenCV3.2.0(Cmake + python3 + OpenCV3)(转)
1 安装CMAKE sudo apt-get install cmake 2 安装python及其所依赖的软件包 sudo apt-get install build-essential sudo a ...
- 编译opencv4.5.0
1. 环境vs2017或其它版本cmake-3.18设置环境变量OPENCV_TEST_DATA_PATH 值设置为 D:\sdk\vs2017\opencv-4.5.0\opencv_extra-4 ...
- linux 下cmake 编译 ,调用,调试 poco 1.6.0 小记
上篇文章 小记了: 关于 Poco::TCPServer框架 (windows 下使用的是 select模型) 学习笔记. http://www.cnblogs.com/bleachli/p/4352 ...
- OpenCV4.4.0 安装测试 Installation & Examination (Ubuntu18.04, Ubuntu 20.04)
OpenCV4.4.0 安装测试 Installation & Examination (Ubuntu18.04, Ubuntu 20.04) 单纯简单的 OpenCV 安装配置方法,在这个地 ...
- OpenCV4.1.0实践(1) - 环境配置及使用
Pycharm下虚拟环境配置 1.下载whl文件 下载地址:python extension packages 搜索opencv,根据自己的版本下载,我用的python版本是3.5.2,64位: 2. ...
随机推荐
- Swagger2边写代码边写文档
作为一个开发人员最怕的就是写文档了,但是要想成为一个合格的程序员,写好文档也是一个必备的技能.开发中我们经常要写接口服务,既然是服务就要跟别人对接,那难免要写接口文档,那么如何”优雅“的写接口文档 ...
- laravel框架的中间件middleware的详解
本篇文章给大家带来的内容是关于laravel框架的中间件middleware的详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. laravel中间件是个非常方便的东西,能将一些逻辑 ...
- [转帖]从零开始入门 K8s | 手把手带你理解 etcd
从零开始入门 K8s | 手把手带你理解 etcd https://zhuanlan.zhihu.com/p/96721097 导读:etcd 是用于共享配置和服务发现的分布式.一致性的 KV 存储系 ...
- 并查集 + 路径压缩(经典) UVALive 3027 Corporative Network
Corporative Network Problem's Link Mean: 有n个结点,一开始所有结点都是相互独立的,有两种操作: I u v:把v设为u的父节点,edge(u,v)的距离为ab ...
- 基础知识---IEnumerable、ICollection、IList、IQueryable
一.定义 IEnumerable public interface IEnumerable<out T> : IEnumerable ICollection public interfac ...
- Ubuntu 16.04 ssh协议连接root管理员用户
首先先给自己的Ubuntu 创建一个root密码.毕竟登陆的时候都是用户登陆的. 在 命令行中输入 sudo passwd // 设置root密码 password for func : //输入用 ...
- asp.net webapi 随笔
第一次写博客,文笔有限,记录下学习的过程 话不多说,直接开干 首先用vs2017建立一个空网站项目,然后只勾选api 项目建立后,如下结构 其中WebApiConfig类配置了路由相关信息 publi ...
- 调试 Go 的代码生成
原文:https://studygolang.com/articles/19815 这是一个创建于 2019-04-17 23:12:26 的文章,其中的信息可能已经有所发展或是发生改变. 2016 ...
- 彻底搞懂B树、B+树、B*树、R 树
出处:http://blog.csdn.net/v_JULY_v . 第一节.B树.B+树.B*树1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Ba ...
- 纯C语言实现线性表
#include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef int ElemType; typedef ...