您的位置:首页 > 编程语言 > C#

Emgu CV(OpenCV for C#)学习笔记(1)

2013-11-13 00:12 615 查看
想要自学机器视觉有关的知识,在网上摸索了好久,才了解到了OpenCV。但OpenCV开发环境是C++,可我只会点C#与VB。正琢磨学习C++,又了解到Emgu CV(OpenCV for C#),真是欣喜若狂。找到EmguCV入门指南,如奉至宝,赶紧依样画瓢,争取入门。为了加深记忆,在此做学习笔记。

下载Emgu CV安装以后,参考http://hi.baidu.com/mvp_xuan/item/144c6ddfebb1413de3108fd1,每次新建项目,应先导入UI插件,然后添加引用。具体方法如下:

导入UI插件:点击“工具(T)” -> “选择工具箱项(X)…” ,在新打开的窗口中选择:“.NET Framework组件”,点击“浏览”,到目录:C:\Emgu\emgucv-windows-x86 2.3.0.1416\bin下,双击Emgu.CV.UI.dll即可。



    看到如图四项之后,点击确定即可。

添加引用:右键单击“解决方案资源管理器”中刚才所建项目下的“引用”,选择“添加引用”;在新弹出的窗口中选择“浏览”,到安装目录:C:\Emgu\emgucv-windows-x86 2.3.0.1416\bin下,选择:Emgu.CV.dll、Emgu.CV.ML.dll、Emgu.CV.UI.dll、Emgu.Util.dll、ZedGraph.dll等共五个DLL文件,并点击确定加入。如下图所示即可:



现在开始示例学习。

第一个示例:Hello World in CSharp

Hello World - Version 1----这个是利用窗口显示Hello Word的例子。先新建窗口应用程序,删除Form1,在Program.cs中注释或删除行“Application.Run(new Form1());”,然后添加代码。如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

//增加

using Emgu.CV;

using Emgu.CV.CvEnum;

using Emgu.CV.Structure;

using System.Drawing;

namespace Hello_World___Version_1

{

    static class Program

    {

        /// <summary>

        /// 应用程序的主入口点。

        /// </summary>

        [STAThread]

        static void Main()

        {

            Application.EnableVisualStyles();

            Application.SetCompatibleTextRenderingDefault(false);

            //Application.Run(new Form1());

            string win1 = "测试窗口";

            //创建测试窗口

            CvInvoke.cvNamedWindow(win1);

            //创建400*200的蓝色图像

            using (Image<Bgr, Byte> img = new Image<Bgr, byte>(400, 200, new Bgr(255, 0, 0)))

            {

                //文字

                MCvFont f = new MCvFont(FONT.CV_FONT_HERSHEY_COMPLEX, 1.0, 1.0);

                //用定义的文字在图上画"Hello,World."

                img.Draw("Hello,World.", ref f, new Point(10, 80), new Bgr(0, 255, 0));

                //显示图像

                CvInvoke.cvShowImage(win1, img.Ptr);

                //等待按键事件

                CvInvoke.cvWaitKey(0);

                //释放窗口

                CvInvoke.cvDestroyWindow(win1);

            }

        }

    }

}

运行后如下图:

 


Hello World - Version 2----用ImageViewer类显示图像。代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

//增加

using Emgu.CV;

using Emgu.CV.CvEnum;

using Emgu.CV.Structure;

using Emgu.CV.UI;

using System.Drawing;

namespace Hello_World___Version_1

{

    static class Program

    {

        /// <summary>

        /// 应用程序的主入口点。

        /// </summary>

        [STAThread]

        static void Main()

        {

            Application.EnableVisualStyles();

            Application.SetCompatibleTextRenderingDefault(false);

            //Application.Run(new Form1());

            //创建400*200的蓝色图像

            using (Image<Bgr, Byte> img = new Image<Bgr, byte>(400, 200, new Bgr(255, 0, 0)))

            {

                //文字

                MCvFont f = new MCvFont(FONT.CV_FONT_HERSHEY_COMPLEX, 1.0, 1.0);

                //用定义的文字在图上画"Hello,World."

                img.Draw("Hello, world", ref f, new Point(10, 80), new Bgr(0, 255, 0));

                //用Emgu.CV.UI名称空间下的ImageViewer类显示图像

                ImageViewer.Show(img, "Test Window");

            }

        }

    }

}

运行后如下图:



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: