美文网首页
Win7 C#(vs2013)+EmguCV 3.2 调用本地摄

Win7 C#(vs2013)+EmguCV 3.2 调用本地摄

作者: 随遇而安_cc | 来源:发表于2017-10-25 00:25 被阅读0次

    OpenCV是由C/C++编写的图像处理库,C#不能直接调用,

    但是EmguCV是使用C#对openCV进行封装。

    那么问题来说,EmguCV如何使用?

    我这里开发环境是VS2013 + Win7

    1、首先需要下载EmguCV ,下载地址:https://nchc.dl.sourceforge.net/project/emgucv/emgucv/3.2/libemgucv-windesktop-3.2.0.2682.exe

    下载完成后,进行安装,安装步骤是傻瓜式安装,但要记着自己的安装路径 (eg:C:\Emgu\emgucv)

    2、需要配置环境变量。

    打开我的电脑 ==>> 打开高级系统设置==>>打开环境变量==>>在系统变量中找到Path变量==>>在对话框中的文本框中的最后添加EmguCV的安装路径,如我的安装路径为:C:\Emgu\emgucv\bin==>>点击确定,必要时重启电脑生效。

    路径需要指向bin目录下。

    高级系统设置 环境变量 系统变量中的Path变量 Path里面添加EmguCV的安装路径

    3、VS2013中配置EmguCV。

    新建一个Windows窗体程序==>>添加对C:\Emgu\emgucv\bin目录下的对EmguCVd的引用(共4个组件:Emgu.CV.World.dll  ZedGraph.dll  Emgu.CV.UI.GL.dll  Emgu.CV.UI.dll)。

    vs添加4个引用文件

    配置过程到此为完成。

    4、具体代码实现。

    在Windows窗体上 ,拖一个ImageBox、一个按钮到到窗体上。双击按钮,编写Click事件代码

    编写Click事件代码。具体代码如下:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Emgu.CV;
    namespace WinFrom1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    private VideoCapture capture;
    private bool isProcess = false;
    private void button1_Click(object sender, EventArgs e)
    {
    if (capture != null)
    {
    if (isProcess)
    {
    Application.Idle -= new EventHandler(ProcessFram);
    this.startBtn.Text = "Stop";
    }
    else
    {
    Application.Idle += new EventHandler(ProcessFram);
    this.startBtn.Text = "Start";
    }
    isProcess = !isProcess;
    }
    else
    {
    try
    {
    capture = new VideoCapture();
    }
    catch (NullReferenceException expt)
    {
    MessageBox.Show(expt.Message);
    }
    }
    }
    private void ProcessFram(object sender, EventArgs arg)
    {
    imageBox1.Image = capture.QueryFrame();
    }
    }
    }

    5、运行过程中可能出现的Bug。

    a) 点击运行,可能会如下异常:System.TypeInitializationException”类型的未经处理的异常在 Emgu.CV.World.dll 中发生

    解决方法:将EmguCV bin目录下的x64 x86文件拷贝到项目下Debug目录下即可。(我本地已调试好,不报该错误了,暂无图片。)

    b) 再次运行,继续提示报错,如下图:

    此时情况为缺少VC redit.exe程序。

    附链接地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145

    redit.exe程序

    傻瓜式安装改exe程序,必要时重启电脑。

    c)再次运行程序。

    可以显示了,哈哈哈哈

    ==>> 恭喜,成功了,可以洗洗睡了。

    哈哈哈哈 1024

    -----于20171024晚,哦,,,,不,,,不,,,不  已经25号了,这个猿节就这样吧。

    相关文章

      网友评论

          本文标题:Win7 C#(vs2013)+EmguCV 3.2 调用本地摄

          本文链接:https://www.haomeiwen.com/subject/isrfpxtx.html