OpenCV入门教程

-
视觉OpenCV入门资料,简单地描述,使能对视觉基础知识有个概念性认识。找工作视觉必备,点击下载,快速提升自己的硬实力
目录 第1章预备知识 自业 1.1编程的流程. 12什么叫编辑 5566 13什么叫编译…… 14什么叫连接 7 15什么叫运行… 16 Visual c++是什么 17头文件 18库文件… 自自。自曲自自非 190 penCV是什么…… 11 110什么是命令行参数. 12 1.11常见编译错误. 13 1111找不到头文件. 13 1.11.2拼写错误… .14 1.12常见链接错误. 15 1.13运行时错误 t自 17 第2章 OpenCV介绍 19 21 OpenCV的来源 22 OpenCV的协议… .19 第3章图像的堪本操作. .21 31图像的表示 32Mat类 ∴23 33创建Mat对象. 24 331构造函数方法… 24 332 create()函数创建对象 25 33.3 Matlab风格的创建对象方法 26 3 34矩阵的基本元素表达 35像素值的读写.…27 351at(函数 .28 352使用迭代器… 29 353通过数据指针 ∴30 36选取图像局部区域 32 361单行或单列选择 2 362用 Range选择多行或多列.33 363感兴趣区域 33 364取对角线元素.34 37Mat表达式 34 38Mat类 36 39Mat类的内存管理 lBB。。自。自。。。。 38 3.10输出.. 曹自自自自 40 311Mat与 IplImage和 CyMat的转换…42 3111Mat转为|p|mage和 CyMat格式 42 3112 IplImage和 CyMat格式转为Mat .42 第4章数据获取与存储….24 41读写图像文件. 44 41.1读图像文件. 自。日。自。自。。自4非非非自自。。。自。。自自日 44 412写图像文件 .45 42读写视频… B。自 47 4.21读视频 47 42.2写视频 249 第1章预备知识 OpenCV是一个功能强大的计算机视觉库,要用好它,除了要具有相关的计 算机视觉理论知识外,还需要具有一定的编程能力。本书作者通过对 OpenCV中 文论坛中的大量问题观察,发现有很大比例的问题是因为用户对CC++语言不熟 练,导致出错,或出错后不知如何解决。如果对C/++语言不熟悉,那使用 OpenCV 时会满头雾水瞎摸索,费心费力 在这一章中,将介绍一·些编程的基木概念,让读者对编程的流程有一个基木 了解。这样在岀现错误时,可以快速确定错误的类型,并知道该如何解决。 11编程的流程 一个编程的基本流程包括编辑、编译和连接三大步骤。其流程图如图1.1所 编辑 编辑 a cpp b. cpp 编译 编译 a obi b. obj opencv core. lib 连接 main. exe 5 图1.1编程的基本流程 12什么叫编辑 编辑(edit)代码即编写代码,是编程的第步。你可以任意一个编辑器进 行代码的编写。你可以使用 Windows自带的“记事本”来编写代码,也可以使用 Notepad++,或者Ⅵ /isual studio提供的编辑器。 hello.cpp-记郓本 文件)编辑)恪工息)查有吧)助 lude <stio. h retu"n 0 图1.2使用 Windows自带的记事本编辑代码 虽然可以使用记事本软件编辑代码,但是记事本软件的功能非常有限。缺少 常用的语法高亮,自动缩进等功能。所以可以使用其他功能更丰富的编辑器,如 Notepad++(图1.3)等。 d hello. cpp -+ 〕编扫)搜幸〖)视图卫)式 〕忠 111o 1 lude <stdio. h> 2 int main( prinLI("Hello, Opencv!\n"); 上西七uyn 6 length In: 1 Col cl 图1.3使用 Notepad++软件编辑代码 13什么叫编译 编译( compile)是将用某种编程语言(如C++语言)写成的源代码,转换成 日标文件。日标文件包含着机器代码(可直接被计算机中央处理器执行)以及代 码在运行吋使用的数据。编译器( compiler)是实现这目的的软件。编译器有 很多,如在 Windows下有微软公司的cee,在LnuX下有gcc和g++。在命令行 下使用c,ee对helo.cpp源代码进行编译,如图1.4所示。编译后,将得到日标 文件hell.obj,如图1.5所示。 c:\source\chapter1 >c1. exe /c hello.cpp Microsoft (R)C/C++ optinizing Compiler Version 16.00.30319.01 forx64+ Copyright(C) Microsoft Corporation. Al1 rights reserved hello. cpp 图14在命令行下使用 clee对 hello. cp进行编译 2018/81010 C++ so yghello obj 12/8/1011 Objest File 图15编译后,将新生成 hello。b目标文件 什么叫连接 连接(link)是将多个目标文件,以及库文件生成可执行的文件(或静态库 或动态库)的过程。连接器( linker)是实现这一的的软件。常用的连接器有 Windows下的link.exe, Linux下的ld等。 在 Windows下可以使用 link. exe将前面生成的hell。ob连接为可执行文件, 在命令行下效果如所图1.6小。连接后,将生成可执行文件,如图1.7所小。 \source\chapter1>link. exe hello.ob Microsoft(R)Incremental Linker Version 10.00. 30319.01 Copyright(C) Microsoft Corporation. All rights reserved 图16在命令行下使用 link. exe对 hello. obj进行连接 称 修改口期 型 h 1 5i 22]hello rh 01,/f/10 11 16 hert F 1 hi 图17连接后,将新生成 hello. exe可执行文件 15什么叫运行 运行(run)较容易理解,我们在 Windows资源管理器里用鼠标双击exe可 执行程序,可以使程序被载入CPU运行。我们也可以在命令行窗口中输入可执 行程序的文件名运行,如图18所示。 回管迎员,v15↑nlin「 and ProuD↑Cnn \source\chapterl >hello. exe Hello, OpenCU? c:\source\chapter1 图1.8在命令行窗口中运行 hello, exe,可以看到程序打印到标准输出的结果。 16 Visual c++是什么 通过前面的介绍,可以看到一个编程的流程:编辑->编译->连接->运行。更 具体来说,完成这个流程需要你: 1.打开记事本软件,编辑代码,并保存 2.在命令行下运行编译器,对代码进行编译,生成目标文件; 3.在命令行下运行连接器,将目标文件连接起来,生成可执行程序; 4.在命令行下,或 Windows资源管理器中运行程序,验证程序的正确性 如果你的项目只有一个源代码文件,完成上面四个步骤尚可接受。但是如果 你的项目包括儿十个甚至儿百个源文件,如无其他软件辅助,只用上面四个非常 基本的步骤进行编程开发,会让人抓狂。 集成廾发环境( Integrated Development Environment,简称|DE)可以帮助你 对项目进行管理。常用的IDE有黴软公司的Ⅴ isual studio,里面包含 isual c++, Visua|C#等,其他的还有 Eclipse、 NetBeans、 Delphi等。因此我们平时所说的vC 不是一种编程语言,也不是编译器,它只是一个|DE。 IDE一般包含编辑器。DE自带的编辑器一般都针对编程语言进行了定制 实现语法高亮、自动缩进、自动补全等方使的功能。IDE还提供丰富的菜单和按 钮工具,如图19、图1.10和图1.11所示。 如果你点击IDE中的“生成( build)”按钮(图1.11),或者点击菜单“生成 (buld)”中的菜单项“生成项目( build project",那么DE会去调用编译器 cL. exe 和连接器 link. exe来生成可执行程序。如果你在调试状态下,还会去调用调试盎 ( debugger)。DE会提升程序廾发的效率,特别是调试程序的效率 Build Debug Team Data Icols Test window FElp 句·图·团品白鸥4··同 90|1等|国与A旧|距=2口如如限=幽尚 Sol-1tionhell 1 Bin- Tain I 口 aH Externs1D 国 stdafx c hell c-i stdaf 100%d 201E/81011:51 鹭"屠 图19微软 Visual stdio集成开发环境 家三兰|回马B 图1.10 Visual stdio中的编辑按钮 图1.11 Visual stdio中的生成程序按钮 7头文件 在编程过程中,程序代碼往往被拆成很多部分,每部分放在一个独立的源文 件中,而不是将所有的代码放在一个源文件中。考虑一个简单的小例了:程序中 有两个函数main()和foo()。man()函数位于 maIn. cpp,foo(函数位于 foo. cpp, main()函数中调用fo(数。在编译阶段,由于编译是对单个文件进行编译,所 以编译main.cpρ吋,编译器不知道是否存在foo函数以及fo()调用是否正确, 因此需要头文件辅助。也就是说,在编译命令 cl. exe/c main cpp 运行时,编译器不知道foo的用法是否正确(因为foo在另一个文件 foo. cpp 中),只有借助头文件中的函数声明来判断。对 maIn Cop进行编译时,不会涉及 foo. cpp文件,只会涉及main.cpp和foh(因为fooh被 include)文件。头文件 的作用如图1.1所示。 2.函数声明是int foo(inti,intj),你的 调用看上去是对的 1.fo0-数 这样用对 foo h o main cpp int foo int i, int j); #ⅰ nclude"foo.h" int main( foo. cpp include foo, h int i=foo 3, 4) int foo int i, int i) return 图1.12对 main cpp进行编译时,需要利用头文件中的foo函数声明来确认 main.cpp中 对fo0的调用是正确的 18库文件 库文件中包含一系列的子程序。例如在上一节的例子中,foo.cpp源文件中 实现了foO函数,我们假设foo(函数是包含重要算法的函数,我们需要将foo() 函数提供给客户使用,但是不希望客户看到算法源代码。为了达到这一目的,我 们可以将foo.cpp编译程库文件(图1.13),库文件是二进制的,在库文件中是 看不到原始的源代码的。库和可执行文件的区别是,库不是独立程序,他们是向 其他程序提供服务的代码 当然使用库文件的好处不仅仅是对源代码进行保密,使用库文件还可以减少 重复编译的时间,增强程序的模块化。将库文件连接到程序中,有两种方式, 种是静态连接库,另一种是动态连接库。如果希望了解更多关于库文件的知识, 请查阅相关资料,再次不详细分析它们之问的异同。 10

6.24MB
OpenCV官方教程中文版
2017-08-26OpenCV官方教程中文版
OpenCV安装程序及教程下载_course
2019-08-07压缩包包含有:OpenCV安装程序及教程 相关下载链接://download.csdn.net/download/luoyuboyyyy/4493129?utm_source=bbsseo
OpenCV官方教程中文版下载_course
2019-10-04本资源包含了各种算法实现以及其程序代码,方便大家使用,而且是中文的 相关下载链接://download.csdn.net/download/qq_40499719/10573112?utm_sourc
6.24MB
OpenCV官方教程中文版(For Python).pdf
2017-01-17OpenCV官方教程中文版(For Python).pdf
5.82MB
OpenCV官方教程中文版(带目录)pdf下载
2019-02-21这个pdf是经过自己整理加上目录,《OpenCV官方教程中文版(带目录)pdf下载》中文+目录,欢迎下载
3.30MB
《OpenCV教程——基础篇》电子书及源程序
2009-04-14非常经典的OpenCV教程——《OpenCV教程——基础篇》的电子书和源程序,该书是N多学习OpenCV人士必看之书,包括了OpenCV的图像处理,视频处理及摄像机标定,三维重建的方法。
7.6MB
OpenCV入门教程+OpenCV官方教程中文版(For Python)
2016-12-13OpenCV入门教程+OpenCV官方教程中文版(For Python),OpenCV学习必备文档。
13.98MB
OpenCV教程
2018-12-14本书由OpenCV发起人所写,站在一线开发人员的角度用通俗易懂的语言解释了OpenCV的缘起和计算机视觉基础结构
6.24MB
OpenCV官方教程PDF 高清 中文版
2016-09-27是Opencv 和python结合,其中有opencv的算法分析,是仅有的能结合pyton的opencv文档,其中也有视频摄像的抓取与分析
393KB
OpenCV使用教程
2018-04-04https://blog.csdn.net/u012706811/article/details/52779271 OpenCV使用教程 并且更新相关的志愿队用法
-
下载
整理自官方的STM32H745xxT6的AD库封装含3D
整理自官方的STM32H745xxT6的AD库封装含3D
-
学院
hadoop自动化运维工具Ambari应用实践
hadoop自动化运维工具Ambari应用实践
-
学院
Cocos Creator游戏开发-连连看 (接入腾讯优量汇广告)
Cocos Creator游戏开发-连连看 (接入腾讯优量汇广告)
-
学院
【2021】UI自动化测试框架(Selenium3)
【2021】UI自动化测试框架(Selenium3)
-
下载
Java基础知识复习.docx
Java基础知识复习.docx
-
学院
flutter插件调用APP页面、使用原生aar,framework库
flutter插件调用APP页面、使用原生aar,framework库
-
博客
Ubuntu安全系列--问题解决
Ubuntu安全系列--问题解决
-
学院
thinkphp5.1博客后台实战视频
thinkphp5.1博客后台实战视频
-
博客
swagger 报错 Multiple Dockets with the same group name are not supported
swagger 报错 Multiple Dockets with the same group name are not supported
-
下载
Python/Pygame经典游戏源码五子棋
Python/Pygame经典游戏源码五子棋
-
下载
数学专业词汇.docx
数学专业词汇.docx
-
博客
读《白帽子讲Web安全》有感
读《白帽子讲Web安全》有感
-
学院
ProBuilder快速原型开发技术
ProBuilder快速原型开发技术
-
下载
南京大学 《信号与系统》期末考试试卷.pdf
南京大学 《信号与系统》期末考试试卷.pdf
-
下载
北大--2014数算期末考试试题.pdf
北大--2014数算期末考试试题.pdf
-
博客
谷粒商城基础篇------商品服务 - 平台属性
谷粒商城基础篇------商品服务 - 平台属性
-
学院
易语言开发通达信DLL公式接口
易语言开发通达信DLL公式接口
-
学院
【数据分析-随到随学】Hive详解
【数据分析-随到随学】Hive详解
-
博客
双重循环知识点
双重循环知识点
-
博客
区块链钱包系统开发到底是什么?终于讲清楚了
区块链钱包系统开发到底是什么?终于讲清楚了
-
学院
大数据Hive on MR/TEZ与hadoop的整合应用
大数据Hive on MR/TEZ与hadoop的整合应用
-
学院
智联万物,京东IoT技术创新与实践
智联万物,京东IoT技术创新与实践
-
学院
【数据分析-随到随学】Mysql数据库
【数据分析-随到随学】Mysql数据库
-
下载
esp32s2的arduino开发环境
esp32s2的arduino开发环境
-
下载
泰和安消防调试软件.zip
泰和安消防调试软件.zip
-
下载
2021考研英语一真题及答案PDF版高清无水印
2021考研英语一真题及答案PDF版高清无水印
-
学院
转行做IT-第2章 HTML入门及高级应用
转行做IT-第2章 HTML入门及高级应用
-
学院
性能测试面面观
性能测试面面观
-
学院
web前端开发规范
web前端开发规范
-
学院
云计算基础-Linux系统管理员
云计算基础-Linux系统管理员