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上下载。

https://opencv.org/releases/

下载扩展库

打开opencv的GitHub,如下:

https://github.com/opencv

下载完解压得到,下面开始编译(玩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选项,这样,在调用dll时,只调用这一个就行了,不用根据功能选择了,省了些麻烦。
3.在OPENCV_EXTRA_MODULES_PATH选项中,填写opencv_contrib解压目录下,modules文件夹的路径,这样就把opencv_contrib编译进去了。

再次点击  配置,等待结束

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没有编译,如过需要,和前面的步骤差不多。

回到前面这张图,重新生成。

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版本

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;
}

  

原文地址:https://www.cnblogs.com/kekeoutlook/p/11701511.html

时间: 2024-10-08 00:36:49

opencv4.0.0+cmake编译(含contrib)的相关文章

在win10下实现openCV3.2.0+vs2015+cmake出错解决方案

在研究sift算法时发现opencv3.X版本中有些库函数被去掉了.网上查了一下,确实没有sift算法这部分代码了,需要通过网上下载附加库opencv_contrib-3.2.0进行cmake编译就可以用了,于是进入漫长的cmake编译之旅!! 1.网上下载cmake 进入网站下载一个cmake,这里我下的是当前网站上的最新版本,个人觉得这个对编译影响不大.进入界面下载如下方式: 这里选择: Windows win64-x64 Installer: Installer tool has chan

OpenCV.3.4.6_VS2015&amp;cmake编译x86版本的bin&amp;lib

1.参考网址:opencv3.3.0+vs2015+cmake编译opencv x86 - wowo的专栏 - CSDN博客.html(https://blog.csdn.net/ifenghua135792468/article/details/81254908) 2.环境:Win7x64,cn_visual_studio_enterprise_2015_with_update_3_x86_x64_dvd_8923298.iso,cmake-3.14.5-win64-x64.zip,openc

使用QT 4.8.6 + Cmake 3.0.0 编译 最新版本OpenCv3.0.0

mingw32 (x32) gcc 4.8.1 g++ 4.8.1 qt 4.8.6 opencv-3.0.0 2015-06-04 cmake 3.3.0-rc1 windows 7 x64 参考文章: http://blog.csdn.net/qiurisuixiang/article/details/8665278 -------------- -------------------------------- 修改 opencv/sources/CMakeLists.txt 行数: 174

编程经验:Cmake编译Opencv3.0&amp;extra model所遇到的种种问题~

前段时间调研一个算法,作者提供了源代码,很自豪的宣布源代码已经集成在了3.0中,于是我就开始了"苦逼"的配置之旅,结果遇到了N个bug,还好自己有截图的习惯,本文就说说我遇到的问题,以及如何解决部分问题. 1. opencv_contrib-master 这是Opencv3.0的额外模块,里面提供了诸如xfeatures2d等新模块,集成了近两年来提出的优秀算法,比如我之前研究的Latch特征,就集成在了这个extra module中,但最主要的是,这个模块中的代码支持Matlab混合

TY科技的工程配置(VS2017 &amp; Opencv4.0.0)

对于samples[1]在第77行需要设置编译好的OpenCV库位置,我的为set(OpenCV_DIR D:/Softwares/opencv-4.4.0/opencv/build)[2]利用cmake进行编译,并将camport3-master\lib\win\hostapp\x64下的tycam.dll放置在camport3-master\sample\build\bin\Debug目录下 在VS中新建工程,配置环境:(目前仅debug模式可用)[1]添加OpenCV的环境并添加入工程[2

Ubantu14.04下编译OpenCV3.0.0

以前一直使用opencv 2.x的版本,现在3.0的已经发布成正式版了,尝试在Linux下安装. 收集了一篇不错的经验教程:Ubuntu14.04下安装OpenCV3.0经验. 编译的过程大概需要30分钟左右.亲测教程可用,需要注意的是把测试图片girls.jpg替换成自己的图片即可. 测试的例子 1.创建工作目录 mkdir ~/own/mycode cd ~/own/mycode gedit readimage.cpp 2.编辑如下代码 //! [includes] #include <op

分享impala-1.3.0-hadoop-2.3.0-cdh5.0.0编译

impala编译 编译系统centos 5.10 一.预装库 1.gcc安装 yum install gcc44 yum install gcc44-c++ 下面的单独安装在编译过程中会与系统自带的低版本冲突 mpc-0.9.tar.gz mpfr-3.1.2.tar.gz gmp-5.0.1.tar.bz2 gcc-4.4.7.tar.gz gcc-g++-4.4.7.tar.gz http://blog.sina.com.cn/s/blog_868618f00101ij4a.html 注:安

hadoop 2.6.0源码编译

这里面选择的HADOOP的版本为2.6.编译前需要准备的如下工具: HADOOP:   hadoop-2.6.0-src.tar.gz JDK:   jdk-7u71-linux-x64.tar.gz MAVEN:  apache-maven-3.0.5-bin.tar.gz PROTOBUF:   protobuf-2.5.0.tar.gz FINDBUGS:    findbugs-3.0.0.tar.gz ANT:  apache-ant-1.9.4-bin.tar.gz 1.分别解压ha

编译安装nginx1.9.7+php7.0.0服务器环境

摘要:一直以来我都通过网上的一些材料去搭建lnmp环境,通过直接yum安装nginx mysql php等软件.但是为了原生态的编译安装最新的软件版本,我决定自己亲手搭建lnmp环境,采用最新的nginx1.9.7(昨天出了1.9.8)和php7来研究 ... 一 直以来我都通过网上的一些材料去搭建lnmp环境,通过直接yum安装nginx mysql php等软件.但是为了原生态的编译安装最新的软件版本,我决定自己亲手搭建lnmp环境,采用最新的nginx1.9.7(昨天出了1.9.8)和 p