'Emgu.CV.CvInvoke ошибка в тесте распознавания лиц с использованием emgu - PullRequest
2 голосов
/ 30 января 2011

Я немного разбираюсь в кирпичной стене. Мне может просто не хватить фундаментального понимания того, как настраивать проекты в .net (c # express 2010), но я просто не могу заставить эту программу работать

В основном я пытаюсь просто установить простую программу, которая будет принимать веб-камеру и проверять ее на наличие лица, и, если это так, запускать даже (со временем я все усложню)

Я видел несколько примеров распознавания лиц с использованием EMGU (ни один из них не работает), поэтому я думаю, что я лаю нужное дерево, но когда я набираю код

var cap = new Capture(0);

, я получаю 'Emgu.CV.CvInvoke

Итак, я добавил соответствующие (по крайней мере, мне кажется) ссылки на dll и добавил операторы использования, я просто не знаю, что еще делать.

Очевидно, я что-то упустил.

Я не уверен, что лучший способ поделиться всем моим проектом (я открыт для предложений), но кто-нибудь знает рабочий пример, который компилируется в C # Express 2010?или есть учебник, который включает в себя, какие файлы для добавления?

Спасибо

Ответы [ 3 ]

2 голосов
/ 31 января 2011

Если вы следуете вики EmguCV, у вас не должно возникнуть проблем с запуском кода:

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

Похоже, вы не скопировали DLL-файлы opencv внутри папки bin

[ОБНОВЛЕНО] Можете ли вы попытаться отладить этот простой код и сказать, каков ваш результат?

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();
}
0 голосов
/ 04 февраля 2011

Добавьте cvextern.dll и другие dll, которые вам нужно скопировать в выходную папку, в качестве ссылки на dll, затем перейдите к свойствам этой ссылки, а в дополнительных свойствах установите для свойства CopyToOutputDirectory значение «Копировать, если Новее »или« Копировать всегда ». Чтобы добавить в качестве ссылки, когда вы добавляете существующий элемент, на кнопке добавления есть стрелка, указывающая вниз в перетаскивании, щелкните ее, и появится опция «добавить как ссылку».

0 голосов
/ 04 февраля 2011

После двойной проверки ваших dll кажется, что вы не скопировали cvextern.dll !!!

...