OpenCV 入门级一

首先声明,这一系列博文是本人在学习 OpenCV 的过程中对自身学习的一个总结而已,

仅作为 OpenCV 入门级参考,并没有什么内容值得高手参考,

所以,只适合和我一样正值学习状态者阅读,高手无意者请飘过,但欢迎留言指教。

             

OpenCV 是一个开源的计算机视觉库,其采用 C/C++ 编写,被设计为可移植的库,

OpenCV 的设计目标是执行速度尽可能的快,

其主要关注的是实时应用,同时,OpenCV 的另一个目标是构建一个简单易用的计算机视觉框架,

以帮助开发人员更便捷地设计更复杂的计算机视觉相关的应用程序。

           

OpenCV 的结构和内容

image

上面这幅截图是 OpenCV 源码的文件组成结构,可以看出其中包括 cv ,cvaux , cxcore , highgui , ml 这 5 个模块。

如果以库来体现这几个模块之间的关系的话,可以采用下面的结构图来展现:

image

CV:   包含了基本的图像处理函数和高级的计算机视觉算法,包括图像处理,

         图像结构分析,运动描述和跟踪,模式识别和摄像机标定。

ML:   是机器学习库,包含一些基于统计的分类和聚类工具。

HighGUI:   包含图像和视频的输入/输出函数。

CXCORE:   包含了 OpenCV 的一些基本的数据结构和相关函数。

CVAUX:   该模块则是一般用存放即将被淘汰的算法和函数,同时也包含一些新出现的实验性的函数和算法。

关于 OpenCV 的介绍到此介绍,下面呢,就是通过一个 Demo 来学习一些常用的 API 的使用。

         

Demo 学习               

Demo01

下面的 Demo 将介绍如何显示一张图片,具体 API 的使用请注意注释。

               

 
  
  

至于程序的执行的话,必须到命令行下执行,同时还需要将一张图片拷贝到 exe 文件所在的目录,

然后再在命令行中指定该图片作为参数传递到 Main 函数中。

image 

         

Demo02

下面继续看下一个 Demo,这个 Demo 将展示播放视频文件:

              

 
  
  

image 

image 

image 

             

Demo03

上面呢,确实是可以成功的播放视频了,但是一般的视频播放器都是有个滚动条的,

允许用户手动拖动滚动条从而定位到视频指定的帧上,

下面我们就要实现这个功能了。 

            

 
 

                  

在测试的时候需要注意,有一些视频文件时不支持动态指定帧的操作,所以有可能拖动时会失败。                   

image

 image

 image

然后就可以拖动滚动条来定位帧了

image

                

Demo03

上面的 Demo 呢确实是实现了可以通过拖动滚动条来实现对视频帧的动态控制,

但是有一个问题就是滚动条并不会跟随视频的播放而自带增加,也就是,随时时间流逝,

视频会一直播放,但是滚动条如果不人为地拖动的话是不会发生改变的,

而我们要是实现的就是当视频播放到哪一个帧了,滚动条就应该位于相应的位置上,

所以下面的 Demo 就来实现这个功能。

          

 
 

image

image

从而实现了滚动条随着视频的播放而自动滚动的效果。

           

         

这一篇博文就写到这里了,从上面可以看出,主要是随着逐步的深入来介绍一些 OpenCV 的常用的 API ,

其主线是首先是加载一张图片,而后再是加载视频,再在视频中加入滚动条,最后是滚动条和视频联动的效果,

随着一步一步的深入,可以更好的熟悉 OpenCV 的几个常用的 API 。

        

               

 

                                                                            2010 年 10 月 23 日

              

                        

                      

                          

               

OpenCV个广受欢迎的开源计算机视觉库 是个广受欢迎的开源计算机视觉库 ,它提供了 很多函数,实现很多计算机视觉法,从最基本的 滤波到高级物体检测 皆有涵盖 。很多 初学者希望快速掌握 OpenCV OpenCV OpenCVOpenCV的使用方法 ,但 往会 遇到 各种样的困难。 其 实仔细分析,造成这些困难的原因 有两类:第是 C/C++/C++/C++/C++编程基础不过关; 第二类是不了解算法原理。 解决 这些 困难无非提升编程能力,以及理论基 础知识。 提升编程能力需要多练习,理论知识系统学《数字图 像处理》、《计算机视觉和模式识别等课程,所有这些都不 像处理》、《计算机视觉和模式识别等课程,所有这些都不 像处理》、《计算机视觉和模式识别等课程,所有这些都不 能蹴而就 , 需要耐下心来认真修炼。 同时我们也 需要 认识到 OpenCV OpenCV OpenCVOpenCV只是算法库, 只是算法库, 能为我们搭建计算机视觉 应用提供“砖头”。我们并不需要完全精通了算法原理 应用提供“砖头”。我们并不需要完全精通了算法原理 之后 才去使用 OpenCV OpenCV OpenCVOpenCV, 只要了解“砖头”的功能,就可以动手。在实践中学习 才是最高效的学习 方式。 本小册子希望为初学者提供引导,使快速了解 OpenCV OpenCV OpenCVOpenCV的基本数 据结构以及用法。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值