Windows7 64位机上Emgu CV2 4 2安装与配置

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

1.      从http://sourceforge.net/projects/emgucv/?source=directory下载最新的Emgu CV2.4.2

2.      将libemgucv-windows-x86-gpu-2.4.2.1777拷贝到D:\soft\Emgu2.4.2文件夹下,运行此.exe文件,将其安装到D:\soft\Emgu2.4.2\emgucv-windows-x86-gpu2.4.2.1777文件夹下,安装完后会自动重启;

3.      将D:\soft\Emgu2.4.2\emgucv-windows-x86-gpu2.4.2.1777\binD:\soft\Emgu2.4.2\emgucv-windows-x86-gpu2.4.2.1777\bin\x86(x86文件夹下包含有对应的OpenCV2.4.2的动态库,将此目录加入到环境变量后Emgu不需要额外的安装相对应的OpenCV);添加到系统环境变量Path中,重启;

4.      打开vs2008,新建一个基于Windows窗体的应用程序;

5.      导入UI插件:Tool-->Choose Toolbox Items-->.NET Framework Components-->点击Browse,选中D:\soft\Emgu2.4.2\emgucv-windows-x86-gpu2.4.2.1777\bin下的Emgu.CV.UI.dll打开,会在列表中新增HistogramBoxImageBoxMatrixBoxPanAndZoomPictureBox四项;

6.      添加引用:选中工程下的References-->Add Reference-->Browse选中D:\soft\Emgu2.4.2\emgucv-windows-x86-gpu2.4.2.1777\bin下的Emgu.CV.dllEmgu.CV.ML.dll Emgu.CV.UI.dll Emgu.Util.dllZedGraph.dll 5个动态库,点击OK

7.      点击Solution Platforms-->Configuration ManagerActive solution platform将原来的Any CPU改为x86,否则会提示“Emgu.CV.CvInvoke的类型初始值设定项引发异常”的错误。

网上的一个代码示例,编译、运行成功:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingEmgu.CV;//Emgu

usingEmgu.CV.Structure;

usingEmgu.Util;

usingSystem.Threading;

namespaceTestEmgu

{

    public partial class Form1 : Form

    {

       publicForm1()

       {

           InitializeComponent();

       }

       privateCapturecapture;

       privateboolcaptureinprocess;//判断摄像头的状态

       privatevoidbutton1_Click(objectsender,EventArgse)

       {

           if(capture !=null)

           {

               if(captureinprocess)

               {

                   Application.Idle -=newEventHandler(processframe);

                   button1.Text ="stop!";

               }

               else

               {

                   Application.Idle +=newEventHandler(processframe);

                   button1.Text ="start!";

               }

               captureinprocess= !captureinprocess;

           }

           else//摄像头为空,则通过Capture()方法调用

           {

               try

               {

                   capture=newCapture();

               }

               catch(NullReferenceExceptionexcpt)

               {

                   MessageBox.Show(excpt.Message);

               }

           }

       }

       privatevoidprocessframe(objectsender,EventArgsarg)

       {

           Image<Bgr,Byte>frame =capture.QueryFrame();

           imageBox1.Image =frame;

       }

    }

}

参考文献:

1.  http://www.emgu.com/wiki/

2.  http://blog.163.com/woshitony111@126/blog/static/71379539201282511180304/

3.  http://blog.csdn.net/gaaranaruto/article/details/6328358

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/hddryjv/article/details/84023701