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 日

              

                        

                      

                          

               

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值