Emgu.CV.dll(最基本的动态链接库文件) Emgu.CV.Cvb、Emgu.CV.CvEnum、Emgu.CV.Features2D、Emgu.CV.Flann、Emgu.CV.Geodetic、Emgu.CV.Reflection、Emgu.CV.Structure、Emgu.CV.Tiff、Emgu.CV.Util、Emgu.CV.VideoSurveillance; Emgu.Util.TypeEnum; Emgu.CV.UI(为之前添加EmguCv控件的命名空间,控件也是类); Emgu.CV.BgSegm、Emgu.CV.Face、Emgu.CV.Text、 Emgu.CV.XFeatures2D; Emgu.CV.Cuda(Cuda加速); Emgu.Util.dll Emgu.UI.dll Emgu.CV.Contirb.dll Emgu.CV.Cuda.dll Emgu.CV.ML.dll Emgu.CV.ML、Emgu.CV.ML.MlEnum、Emgu.CV.ML.Structure(机器学习); Emgu.CV.Stitching(图像拼接); Emgu.CV.Stitching.dll Emgu.CV.OCR.dll Emgu.CV.OCR(Optical Character Recognition,光学字符识别) ........... 等等。 表1.1 动态链接库对应的命名空间
如何正确使用命名空间:
据表1.1不完全列举就有很多命名空间,那么怎样正确使用EmguCv的命名空间呢? 笔者举个例子来介绍如何正确添加命名空间。比如OrbFeaturesFinder (ORB特征查找类)。
当我们没有添加引用.dll的同时也没有using 命名空间,出现错误 如图1.19所示。
图1.19
这时我们需要用到EmguCv自带的一个文档查询库,如图1.20所示。该文件在于EmguCv安装目录下。
图1.20 文档查询库
操作步骤如下:
【点击搜索】→【输入搜索内容(OrbFeaturesFinder)】→【点击列出主题】→【双击搜索到的第一个(如图1.21所示)】→【找到命名空间及动态链接库】
图1.21 搜索相关结果
这样我们发现了OrbFeaturesFinder这个类是在命名空间为Emgu.CV.Stitching 中,动态链接库为Emgu.CV.Stitching.dll。
Emgu.CV.Documentation介绍:
这个文档对于学习EmguCV的帮助非常大。本人学习EmguCv主要通过三种路径。 通过别人写好的demo去学习EmguCv,这个资源毕竟有限。通过学习OpenCV(资料多)过度到EmguCV。最后就是通过这个文档学习。接下来讲解如何使用文档自学。
【打开文档】→【文档界面又侧有所有的命名空间】→【每个命名空间下有对应的类】→【每个类下面又有不同的方法】。接下来举简单的例子来说明。
【点击想去了解的命名空间(Emgu.CV命名空间)】→【点击想去了解的类(CvInvoke类)】→【在Methods栏中存在该类的所有函数,函数的右边存在函数的表述(如图 1.22所示)】→【点击需要使用的函数(Erode)】→【更详细的函数解析,使用方法和参数(如图1.23所示)】。
图 1.22
图1.23 Erode函数详细解析
这样通过文档的学习和不断积累的过程,我们最终将会熟练掌握这门技术。
EmguCV自带的历程:
正如上面所说,我们可以通过别人写好的demo来学习EmguCv,开发者专门为我们写好了非常优秀的代码给我们参考,学习。
在安装目录中有一个文件夹名字为Emgu.CV.Example。这个文件夹里面有非常多的具有代表性的demo,如图1.24所示。
图1.24 EmguCv自带demo
读者可以通过这些例程更好的来了解和学习EmguCv。
本章内容到此为止,接下来会通过录制视频讲解使读者更加详细的了解和使用以上内容。
第二章
数据结构
本章节,我们将学习到EmguCv常用到的数据结构,为EmguCv学习打下坚实的基础。由于EmguCv的数据结构过多,这边主要讲解常用到的数据结构类型。
.net系统中“点”结构类型介绍:
Point:为二维坐标系下的”点“类型,以图像左上角为坐标原点。Point类型并非是EmguCv中的类型,而是在System.Drawing命名空间中。
常见创建方法:
public Point(int x, int y);//指定坐标创建Point。
public Point(Size sz)://指定大小创建Point,se宽度为x坐标,se高度为y坐标。
常见使用方法: