《学习opencv1.0》总结

来源:互联网 发布:小明永久域名首页台湾 编辑:程序博客网 时间:2024/06/05 09:40

《学习opencv》一书是基于opencv1.0即C语言版本的opencv的一本书。下面大致梳理一下该书的学习体会

后面又学习了毛星云的《opencv3》,自己补充了点c++的知识,才对《学习opencv》一书有了更深的了解

其中自己使用的版本是2.3.1,参考了http://blog.csdn.net/morewindows/article/category/1291764里面的文章和例程实践

第一章

介绍了opencv的历史,机器视觉的概念等等

opencv的结构:主要4个模块,cv(图像处理和视觉算法)、mll(统计分类器)、highgui(图像和视频输入输出)、cxcore(基本结构和算法、绘图函数等)

opencv以c语言封装了很多关于图像处理的基本函数,理解为一个功能强大的图像处理api库。可以看到很多算法都是《数字图像处理》一书中讲到的。并且是开源的,即这些api函数可以查看源码,便于我们后面在嵌入式平台中实现


第二章    opencv入门

3个例子:显示图片,播放avi视频,视频播放控制

2个变换:图像卷积、图像缩放与边缘检测

2个驱动硬件的例子:摄像机读入和写入avi

均是以简单的例子讲解,就是一些api和数据结构体的说明。比较重要的如:iplimage结构体,图像加载,创建窗口、销毁图像,按键等待等基本函数。cvcapture结构体,滚动条的创建,创建一幅图像时需建立iplimage结构体变量等。

例子均是c语言,一些api和结构体均采用比较好的命名规则和大小写,倒是int main(*****)里面的2个参量的写法,在vc下编程原来从来没考虑过。


第3章   初探opencv

opencv基本数据类型:一些基本的结构体数据类型,如cvrent、cvpoint,以及相应的同名大小写有区别的构造函数

图像类型:1.0版本实际上采用了面向对象的概念,iplimage由cvmat派生、cvmat的结构体构成,分成矩阵头和数据体。

矩阵数据的存取方法:最好是自定义指针,根据图像的元素产生正确的偏移

iplimage结构:结构体中每个变量代表的含义。比较重要的如roi、imagedata的char型指针等、通道的概念。可以根据该结构体来访问某一点的图像数据。如例子3-12即是利用roi精确到像素点

矩阵图像有一些基本操作函数:一大堆,不举例了。

绘制:绘制多边形、字体和文字等函数

数据存储:yaml和xml格式,相应的函数和例子


第4章   细说highgui

如显示、文件系统,摄像头之类的硬件交互函数在其中

创建窗口函数、载入图像、显示、键盘、鼠标等等相应的函数和结构体,一些用法说明和例子

滑动条、视频的处理


第5章   图像处理

关于图像处理的一些常用操作的api函数等实例

各种平滑、图像形态学、膨胀腐蚀、可以自定义核、开与闭运算、形态学梯度、礼帽和黑帽、漫水填充算法、图像金字塔、阈值化。

这些都是《数字图像处理》一书中的一些图像处理的基本概念、这里有对应的api的说明和例子


第6章  图像变换

5章是:增强、修改或者处理图像、成为类似但全新的图像。这一章重点在变换:将图像转换成源图像数据的另一种表现形式

卷积、卷积边界的处理、梯度和sobel导数、滤波器、拉普拉斯变化、canny算子、霍夫变换、映射、几何操作(拉伸、收缩、扭曲、旋转)、仿射、透视、dft、dct、几分图像、直方图均衡化、


第7章    直方图与匹配

对图像数据进行各种统计、直方图的基本数据结构


第8章    轮廓

第9章    图像局部与分割   (从图像中将目标或部分目标分割出来)

第10章   跟踪与运动    (角点的概念)

第11章   摄像机模型与标定

第12章    投影与三维视觉     (师兄做个一个3维视觉的程序)

第13章     机器学习(将数据转换成信息)


后面7-13章因为目前不用,所以没有什么太多的了解


后面会学习《opencv3编程入门》,学习c++和vs2010编程的相关知识。再来更新该贴


需加载的技能树:

c++vs2010(windows下编程的基本概念)linuxlinux下编程的基本概念

没有怎么接触过面向对象语言,所以这些面向对象语言有一大块缺失、及相应的vc开发、mfc应用程序开发、其他的如qt开发、java网站后台开发等等这一整块都有很大缺失。不能啊(/(ㄒoㄒ)/~~)

接触linux理解不深,对程序实际的编译过程不了解,导致很多linux下的软件不会用,如数字后端的版图软件等等,又是很大一块缺失。不能啊(/(ㄒoㄒ)/~~)

所以这2块技能得立马补起来。后续也会在csdn博客中更新

其他技能:

FPGAmodelsim仿真microblaze时序优化soc数字后端流程uvm验证

这几个都是跟工作相关的必备技能,得赶紧熟练起来


                                                                                                                                                                                                                                                 lijiuyang

                                                                                                                                                                                                                                           2016-3-11于武昌

0 0
原创粉丝点击