使用emgu进行面部识别测试时出现'Emgu.CV.CvInvoke错误

时间:2011-01-30 19:31:37

标签: c# invoke emgucv

我有点砖墙我可能只是缺乏对如何在.net(c#express 2010)中设置项目的基本了解,但我似乎无法让这个程序工作

基本上我正在尝试设置一个简单的程序,它将采用网络摄像头输入并检查它的面部,如果是这样就会触发一个偶数(随着时间的推移我会变得更复杂)

我已经看过几个使用EMGU进行人脸识别的例子(没有一个可行)所以我觉得我正在吠叫正确的树,但是当我到代码时

var cap = new Capture(0);

我得到'Emgu.CV.CvInvoke

所以我添加了适当的(至少我认为)引用dll并添加了using语句我只是不知道还能做什么。

显然我错过了什么。

我不确定分享我的整个项目的最佳方式是什么(我愿意接受建议)但是有没有人知道在c#express 2010中编译的工作示例?或者有一个包含要添加的文件的教程?

由于

3 个答案:

答案 0 :(得分:2)

如果您关注EmguCV wiki,您应该会发现运行代码没有问题:

http://www.emgu.com/wiki/index.php/Download_And_Installation

您好像没有在bin文件夹中复制opencv dll

[UPDATE] 你能尝试调试这个简单的代码并告诉我你的结果是什么吗?

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

...

using (Image<Bgr, Byte> img = new Image<Bgr, byte>(400, 200, new Bgr(255, 0, 0))) 
{
   MCvFont f = new MCvFont(CvEnum.FONT.CV_FONT_HERSHEY_COMPLEX, 1.0, 1.0);

   img.Draw("Hello, Stack Overflow", ref f, new Point(10, 80), new Bgr(0, 255, 0)); 

   //Show the image using ImageViewer from Emgu.CV.UI
   ImageViewer viewer = new ImageViewer(img, "Stack Test");
   viewer.ShowDialog();
}

答案 1 :(得分:0)

经过仔细检查你的dll之后,好像你还没有复制cvextern.dll !!!

答案 2 :(得分:0)

添加cvextern.dll,以及需要复制到输出文件夹的其他dll,作为dll的链接,然后转到该链接的属性,并在高级属性上,将CopyToOutputDirectory值设置为“Copy if”较新的“或”始终复制“。 要添加为链接,当您添加现有项目时,在添加按钮上是一个指向下方的箭头,单击它并显示“添加为链接”选项。