美文网首页
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