Emgu CV 入门指南

Emgu CV 是一个功能强大的图像处理库,它为.NET平台提供了OpenCV的封装。通过本文,将学习如何使用Emgu CV创建一个简单的Windows Form应用程序,实现图像的捕获和处理。

创建项目

首先,需要创建一个新的Windows Form应用程序。在Visual Studio中,选择“文件”->“新建”->“项目”,然后选择“Windows Forms 应用程序”,为项目命名并创建。

启用高级设置

在继续之前,需要启用“显示所有设置”。这可以通过在工具栏中找到并点击“显示所有设置”来实现。这将启用许多有用的功能,如表单设计器布局、对齐到网格等。

添加引用

接下来,需要向项目中添加Emgu CV的引用。在解决方案资源管理器中,右键点击“引用”并选择“添加引用”。浏览到Emgu CV的bin目录(默认位于C:\Emgu\emgucv-windows-x86 2.3.0.1416\bin),选择所有以“Emgu.CV”开头的DLL文件。根据使用的Visual Studio版本,可能需要选择“Emgu.CV.DebuggerVisualizers.VS2008.dll”或“Emgu.CV.DebuggerVisualizers.VS2010.dll”。

添加现有项

现在,需要添加一些现有的项。在项目上点击右键,选择“添加”->“现有项”,然后再次浏览到Emgu CV的bin目录。这次,选择所有以“opencv_”开头的DLL文件。这些DLL文件是每次通过Emgu CV生成输出时所需的,因此将它们添加到项目目录中。还需要更改属性,以便它们总是被复制到输出文件夹。选择所有添加的DLL文件,然后在属性中将“复制到输出目录”更改为“始终复制”。

设计表单

现在,已经将Emgu自定义控件添加到了工具箱中,接下来可以设计表单了。将使用两个ImageBox(Emgu控件)、一个Button和一个Textbox。设计表单如下:

编写代码

接下来,需要编写一些代码。打开form1.cs的代码视图,并添加以下命名空间:

using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Structure; using Emgu.CV.UI;

然后,创建一些成员变量:

Capture capturecam = null; bool CapturingProcess = false; Image<Bgr, Byte> imgOrg; Image<Gray, Byte> imgProc;

现在,添加一个窗体加载事件,将在其中通过webcam开始捕获。

capturecam = new Capture();

这将把默认的webcam与capturecam对象关联起来。添加了与捕获对象关联的try catch块,以避免如果webcam已经被使用时出现错误。添加了一个事件处理程序到Application.Idle,这样它在空闲时执行任务,任务是获取下一帧。ProcessFunction在应用程序的每个空闲状态下被调用。QueryFrame从webcam获取下一帧,如果是null,这意味着存在一些问题,因此在那里停止应用程序。InRange函数接受两个参数min范围和max范围的Bgr。SmoothGaussian应用高斯平滑,x,y长度=9,也可以为x和y传递不同的参数。

按钮编码

这是最简单的部分。它检查CapturingProcess的布尔值,并相应地更改按钮文本并停止从webcam流式传输。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485