我已经编写了一个简单的程序来打开图像并使用EmguCV在C#中显示VS 2010中的图像,但是我得到以下异常:
'Emgu.CV.CvInvoke'的类型初始值设定项引发异常。
在第Image<Bgr, Byte> myimg = new Image<Bgr, Byte>(openfile.FileName);
行
这是我的代码..
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;
using Emgu.Util;
using Emgu.CV.Structure;
namespace imgdisplay2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void imageBox1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openfile = new OpenFileDialog();
if (openfile.ShowDialog() == DialogResult.OK)
{
// imageBox1 =new Emgu.CV.UI.ImageBox() ;
Image<Bgr, Byte> myimg = new Image<Bgr, Byte>(openfile.FileName);
pictureBox1.Image = myimg.ToBitmap();
//imageBox1.Image =myimg ;
}
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
}
}
答案 0 :(得分:4)
您应该按照emgu官方维基中列出的建议解决CVInvoke异常:
答案 1 :(得分:1)
以下是我如何解决问题: 将x86(或64位操作系统上的x64)文件夹地址复制到安装了Emgu的“bin”文件夹下。我的是:C:\ Emgu \ emgucv-windows-universal-gpu 2.4.9.1847 \ bin \ x86
然后在此处粘贴此地址: 控制面板&gt;系统&gt;高级系统设置&gt;环境变量&gt;在系统变量中单击“路径”,然后单击编辑&gt;在那里的字符串末尾添加一个分号,并在分号&gt;之后粘贴你刚刚复制到剪贴板的地址。点击确定。