《OpenCV3编程入门》学习笔记一:邂逅OpenCV
来源:互联网 发布:生产流程优化 编辑:程序博客网 时间:2024/05/20 04:47
一:内容介绍
本节主要介绍以下内容:
1. OpenCV3环境搭建
2. 快速上手尝试:图像显示、读取并播放视频、调用摄像头采集图像
二:学习笔记
1. 环境配置
在OpenCV3中,项目架构发生了一些变化,除了主仓库外新增了opencv_contrib仓库,里面包含人脸识别、新的边缘检测、SIFT算子、新的光流和追踪算法等。个人建议最好是配置一下opencv_contrib库,毕竟我们还是尽量跟随潮流用一些比较新的东西。关于环境配置可参照之前的博文:Opencv3.1.0+opencv_contrib配置及使用SIFT测试 ,里边ubuntu和windows下环境配置的方法都有,但在平常使用时我们一般以windows为主。
另外,强烈建议在VS平台上安装ImageWatch插件,opencv调试利器,参考Opencv+VS插件推荐:调试过程内存中图片Mat变量查看器Image Watch
2. 初试opencv
安装好之后自然就要用了,这里我们可以先尝试一下 图像显示、读取并播放视频及调用摄像头采集图像。很简单具体就不解释了,详见第三部分相关源码。
3. 学习资料
A. 首先官网doc肯定是最重要的,要常逛:http://docs.opencv.org/3.1.0/ ,大家主要关注HighGUI(学习笔记三)、Core(学习笔记四、五)、Imgproc(学习笔记六、七、八、九)和feature2d模块(十、十一);
其他的一些还有http://answers.opencv.org/questions/ , http://www.opencv.org.cn/ ;
一些博客:http://blog.csdn.net/zhmxy555/article/category/1923021,http://blog.csdn.net/baimafujinji/article/details/48467225 , http://blog.csdn.net/yang_xian521/article/category/910716/4 。
还有我们大部分人都是因为想要学视觉所以才会接触OpenCV,这里强烈推荐Stanford Vision Lab
B. OpenCV说到底只是一个函数库,而我们也只是调用它的接口而已。
在学习过程中建议多点进去看一看相关的源码,看别人怎么实现的,多从数字的角度想一想这个函数实现了什么功能;
还有可以学习一下OpenCV里边C++的实现方法,里面大量使用了函数模板、智能指针等,好多开源的优秀库都是这样,很值得学习;
学习视觉一定要代码与原理并重,推公式和写代码一样重要,甚至经过时间的消磨,前者更重要。我身边一般备有书籍《OpenCV3编程入门》、《数字图像处理原理与实践(MATLAB版)》,《数字图像处理与机器视觉——Visual C++与Matlab实现》。七月视觉课上老师推荐了一本《Computer Vision:Algorithms and Applications》(计算机视觉——算法与应用),我没看,应该不错,呵呵。
三:相关源码及解析
1. 图像显示
源码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
素材:
效果图:
略
提示:
A. 图片文件的名称和代码中的名称要一致
B. 一般情况下我们只需要包含头文件opencv2/opencv.hpp即可,因为里边已经包含了核心库的所有头文件,大家可以打开看一下。
2. 读取并播放视频
源码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
素材:
略,自己随便找个视频就行
效果图:
略
提示:
A. 视频文件的名称和代码中的名称要一致
B. 一般情况下我们只需要包含头文件opencv2/opencv.hpp即可,因为里边已经包含了核心库的所有头文件,大家可以打开看一下。
3. 调用摄像头采集图像
源码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
素材:
无
效果图:
略
- 《OpenCV3编程入门》学习笔记一:邂逅OpenCV
- 《OpenCV3编程入门》学习笔记一:邂逅OpenCV
- Opencv3编程入门学习笔记(一)
- 《OpenCV3编程入门》学习笔记二:快速上手OpenCV
- 《OpenCV3编程入门》学习笔记番外篇之OpenCV-Python使用
- OpenCV学习笔记——《OpenCV3编程入门》读书笔记
- opencv3学习笔记(一)——opencv入门
- OpenCV3编程入门学习笔记
- C++学习笔记(五)opencv在win下的使用 —参考浅墨opencv3编程入门
- 《OpenCV3编程入门》学习笔记之官方例程学习
- 《OpenCV3编程入门》学习笔记三:HighGUI图形用户界面
- opencv3编程入门学习笔记1-----基本图像容器Mat
- 《OpenCV3编程入门》学习笔记四:初探core组件
- 《OpenCV3编程入门》学习笔记五:core组件进阶
- 《OpenCV3编程入门》学习笔记六:图像处理
- 《OpenCV3编程入门》学习笔记七:图像变换
- 《OpenCV3编程入门》学习笔记八:图像轮廓与分割
- 《OpenCV3编程入门》学习笔记九:直方图与匹配
- 设置npm的registry几种方法
- Linux基本命令二
- Android函数响应式编程——必学的RxJava转换操作符toList、toSortedList、toMap
- 几个软件安装与环境配置的网址收藏
- Selenium+PhantomJS()+PIL漫画快照
- 《OpenCV3编程入门》学习笔记一:邂逅OpenCV
- Thread 中的run() 与start() 方法
- 教大家一个关于使用微信投票刷票器免费版及微信投票刷票软件手机版的操作方式
- 使用2to3.py转换python2代码到python3
- 15.Linux多线程编程
- java关于并发的总结之二
- 通过METAMASK调试和发布智能合约指南》
- python几种编译器使用
- PID控制的MATLAB仿真(1)