Open CV 3.4.5 入门教程

简介:

Open CV 是Open Source Computer Vision Library 的简称,是一个用BSD协议开发源代码的计算机视觉库,最初由Intel 公司开发,并以BSD许可证受权发行,如今由美国Willow Garage 提供主要支持。php

Open CV可用于开发实时的图像处理、计算机视觉以及模式识别程序,目前使用十分普遍。html

 

参考资料:

Open CV 官方网站: https://opencv.org/ios

Open CV 官方文档 : https://docs.opencv.org/master/测试

Open CV 官方教程: https://docs.opencv.org/master/d9/df8/tutorial_root.html网站

Open CV 中文站: http://www.opencv.org.cn/forum.php?mod=viewthread&tid=33549ui

 

开始:

SDK 下载: https://opencv.org/releases.htmlspa

关于Open CV的版本采用的是多个大版本一块儿发布的方式,好比说最开始的是2.3.0版本,而后在2.4.9版本以后,2.4.10 以前推出了3.0.0 Alpha版本,在2.4.X版本更新的同时,3.0.0版本也发布了RC 版及以后的3.X版, 在3.4.4发布时,4.0.0 RC 版本也已发布,目前,最新版本有三个 4.0.一、 3.4.五、2.4.13.6, 但2.4.13.6 已将近一年没有更新了。能够看出Open CV 在发生重要的调整时会发布新的大版本,但以前的大版本仍保留分支,在开发到必定阶段以后,以前的大版本分支就将再也不更新,或减小更新。.net

 

 

如今是2019-1-2, 4.X的最新版本是4.0.1, 3.X的最新版本是3.4.5,2.X最多是最早被放弃的,因此这里选了最新的3.4.5版本。3d

 

直接下载Win Pack ,Documentation能够存一个书签,方便查看。  Sources 就不用了,由于Win Pack 里面包含的是一部分bin文件和Source源码。指针

下载下来的exe 实际上就是一个自解压文件,双击执行选择目录以后解压便可。

解压出来的目录只有build 和 source两个,以及两个开源的license 还有一个readme文件,对于全部的开源项目,这个文件都是必读的,它可让你走不少弯路。不过这里面彷佛没有更多有价值的东西了。

 

若是你看过网上的其余基于2.3版本的资料,就会发现,这里没有Doc文件夹,而且在build里面也没有x86, 也没有opencv_core 等文件。对于这个问题,由于以前看CEF的时候知道CMakeList文件能够用CMAKE 来生成VS解决方案文件,因此直接就用CMAKE生成了。其实在官网首页上还有一个 教程 选项。

里面有提到使用CMake来生成Open CV 的VS解决方案。但这一点对于新手彷佛有点不太容易。

在使用Cmake 生成解决方案时,还有一个隐藏的问题须要处理,也就是VS版本问题,细心的朋友可能注意到了这个地方,SDK 安装包上有vc14 和 vc15 标记, 这其实就是说这个版本的OpenCV须要在VS2015 或者 VS2017 下编译,不然八成是要出问题的。因此在CMake里面也要选择VS2015 或者VS2017,固然你的电脑上必须安装的有这个版本,而且最好是在C盘安装的,不然还须要配置一下环境变量(根据CMake错误提示便可处理)。

在用CMake生成解决方案时,主要目的路径要选一个新的路径,由于当前目录是只读的。

 

直接用VS 打开解决方案便可。

module下的就是咱们要生成的

 

生成的lib文件在.\lib\Debug下, dll文件在.\bin\Debug 下

而头文件 在 build\include中, 至此, 头文件,lib文件和dll文件都已经到手了,咱们能够着手作一个Demo测试一下。这里借鉴一下网上基于2.3的教程:

http://www.javashuo.com/article/p-zxjlhuub-eg.html

 

 

在VS2015中 新建一个控制台项目, testOpenCV

 

 

把咱们以前生成的lib,dll 还有build里面的include文件夹都拷贝到工程目录下。

首先把include文件夹添加到包含目录中

而后把lib文件拷贝到工程目录下

这里只用到了三个,因此就拷贝了三个,能够根据实际状况添加本身使用的库,能够看到Open CV 生成的dll有18个,咱们一样根据须要添加其中5个到咱们的Debug目录

 

main里面的代码以下:

#include "stdafx.h"

#include "iostream"



#include "opencv2/core/core.hpp"

#include "opencv2/highgui/highgui.hpp"





#pragma comment(lib,"opencv_core345d.lib")

#pragma comment(lib,"opencv_highgui345d.lib")

#pragma comment(lib,"opencv_imgcodecs345d.lib")



using namespace cv;



int main()

{

std::string windowName = "HelloWorld";

//图像名称

std::string imgFile = "opencv-logo.png";

//读入图像

cv::Mat image = cv::imread(imgFile, CV_LOAD_IMAGE_COLOR);

//若是没法读取图形

if (!image.data)

{

std::cout << "没法打开图像文件" << std::endl;

system("PAUSE");//暂停窗口

return -1;

}

//建立一个新窗口

cv::namedWindow(windowName, CV_WINDOW_AUTOSIZE);

//将图像显示都新建立的窗口中

cv::imshow(windowName, image);

//等待,直到用户按任意键时退出

cv::waitKey(0);







    return 0;

}

其中的imgFile 是Open CV的logo图片,你能够换成任意一张图片来测试,图片须要放到当前项目中。

执行的效果如图所示:

 

示例代码:

https://download.csdn.net/download/u012179109/10891080

 

若是你对比2.3的例子看的话,就能够发如今3.4.5 版本上已经和2.3版本发生了一些变化,网上的许多资料都已经不太适合新版本。 这篇文章就是但愿能给各位新手朋友一点帮助,另外本人也是今天刚接触Open CV,若是有写错的地方,欢迎指针,若是你们有什么问题也能够在评论区交流~~~