Emgu安装配置及使用

前言:项目需要,需使用图像处理来完成机械臂从运动的皮带上抓取物体的功能,所以又重拾视觉与图像处理内容。

内容:Emgu是OpenCV的一个跨平台的.NET封装,结构如下图所示:

    下载地址:http://sourceforge.net/projects/emgucv/,下载最新版本的就好。

     运行下载的EXE文件,完成后添加环境变量:我的电脑->属性->高级系统设置->环境变量->编辑或者新建PATH变量,添加安装目录下bin文件所在的路径,

     如";F:installemguemgucv-windows-universal 3.0.0.2157in",保存即完成配置。

     配置完成后,可以打开VS软件测试一下。我用的是VS2015,没有摄像头,仅写个简单的读取图片处理,程序如下:

 1 using System.Windows;
 2 using Emgu.CV;
 3 using Emgu.CV.Structure;
 4 using Emgu.CV.WPF;
 5 using Microsoft.Win32;
 6 
 7 namespace OpenImage
 8 {
 9     /// <summary>
10     /// MainWindow.xaml 的交互逻辑
11     /// </summary>
12     public partial class MainWindow : Window
13     {
14         private Image<Bgr, byte> _originalImage;//原始图像
15         private Image<Gray, byte> _processImage;//处理后得到的图像
16         public MainWindow()
17         {
18             InitializeComponent();
19         }
20  
21         //打开按钮事件,使用对话框形式选择图像打开并显示
22         private void buttonOpen_Click(object sender, RoutedEventArgs e)
23         {
24             OpenFileDialog openFile = new OpenFileDialog();
25             openFile.InitialDirectory = @"G:oe桌面图片";
26             if (openFile.ShowDialog()==true)
27             {
28                 if (openFile.FileName != null)
29                 {
30                     _originalImage = new Image<Bgr, byte>(openFile.FileName);
31                     originalImageBox.Source = BitmapSourceConvert.ToBitmapSource(_originalImage);
32                 }               
33             }
34         }
35 
36         //对原始图像进行Canny处理并将结果显示出来
37         private void buttonProcess_Click(object sender, RoutedEventArgs e)
38         {
39             _processImage = _originalImage.Canny(80,200,3,true);
40             processedImageBox.Source = BitmapSourceConvert.ToBitmapSource(_processImage);
41 
42         }
43     }
44 }
View Code

    程序中需要添加bin文件下的Emgu.CV、Emgu.CV.UI、Emgu.Util引用,并需要将Emgu.CV.WPF中的BitmapSourceConverter.cs文件添加到项目中,以便显示图片。

     程序运行结果如下图所示:

     

     这样的话,就说明Emgu库是可以用的。

     注意:程序刚开始运行的时候会出现一些错误,多数情况是缺少dll文件,可以针对不同的错误将相应的dll文件拷贝到debug文件夹中即可得到解决。

Keep moving.
原文地址:https://www.cnblogs.com/zoe-yan/p/4813577.html