图1.11 选择工具箱
图1.12 添加Emgu.CV.UI.dll中的控件
图1.12 已经添加好的控件
ImageBox控件为图像主要显示控件。
【编写代码】
向Form1窗体中添加一个ImageBox控件和两个Button控件,如图1.13。设置imageBox1的SizeMode属性为Zoom,如图1.14。
图1.13 Form1界面 图1.14 ImageBox1属性设置
编写代码如下:
在程序最上端需要添加这两行。对于作用之后将会详细解答。
using Emgu.CV.Structure; using Emgu.CV;
private void button1_Click(object sender, EventArgs e)//在“创建图片”按钮的单击事件中写入代码。
{
Image
imageBox1.Image = image;//在ImageBox1控件中显示所创建好的图像。 } private void button2_Click(object sender, EventArgs e)//在“打开本地图片”按钮的单击事件中写入代码。
{
OpenFileDialog op = new OpenFileDialog();//实例化打开对画框。 if(op.ShowDialog ()==DialogResult .OK ) {
Mat scr=new Mat(op.FileName, Emgu.CV.CvEnum.LoadImageType.AnyColor);//指定路径加载图片。
imageBox1.Image = scr;//显示加载完成的图片。 } }
在代码编写完成之后,运行程序。在单击创建按钮之后出现异常程序,如图1.15
图 1.15初始化异常
这个由两方面造成
1. 之前的配置出错:在系统环境变量Path中添加的路径不对,或者在路径前面没有使用分号与其他路径隔开。
2. 在确保配置没有出错的情况下,单击【项目】→【属性】→【生成】→【目标平台】。根据用户的操作系位数决定,32为则选择x86,64为的选择x64如图1.16。
3. 如果以上两种方法都不行,请重启电脑。网上安装Emgu Cv的bin文件夹整个复制到程序文件下的Debug文件下。这种方法不推荐,每次操作都需要复制bin文件,显得比较麻烦,应为复制bin文件夹就相当于在环境变量中设置Path路径。
图 1.16 目标平台
以上问题解决之后再次运行程序效果如下:
单击创建图片按钮 如图1.17所示
图 1.17 单击创建按钮
单击打开打开本地图片按钮,选择图片,如图1.18所示
图 1.18 单击打开本地图片按钮
程序正常执行,说明可以在我们电脑上使用EmguCv。接来下让我们一起打开EmguCv的大门,感受EmguCv的强大之处。如果仍然出现初始化异常,请不要着急,慢慢检查步骤。或者把Emgucv安装目录下整个bin文件夹复制到程序的Debug文件夹下,再设置目标平台。 只要坚持下来,相信总是会有收获的。不要被一些小小的困难所压倒,因为接触一个新的软件的同时,总是会遇到七七八八的问题,解决问题的同时也是学习的过程。EmguCv在资料比较少的情况下,所遇到的问题会更多。所以这边希望想真正去学习这个的同学,坚持下来。
命名空间介绍:
C#的命名空间就相当于用来 ” 装类 ” 的一个箱子,类又相当于用来 ” 装函数 ” 的一个箱子。C#通过命名空间来调用类是非常方便的,操作也很简单。之前我们通过使用Emgu.CV.Structure这个命名空间和Emgu.CV命名空间来调用类Image
Emgu CV命名空间:
EmguCv不仅仅只有Emgu.CV.Structure和Emgu.CV两个命名空间。EmguCv和C#接口的命名空间源于添加引用的.dll(动态链接库文件)文件,也就说明了不同的.dll(动态链接库文件)文件有不同的命名空间。这边列举主要的命名空间如表1.1所示。
动态链接库文件 存在命名空间