2011-01-30 92 views
2

我碰到了一些磚牆我可能只是缺乏一些關於如何在.net中設置項目的基本知識(c#express 2010),但我可以似乎沒有得到這個程序的工作'Emgu.CV.CvInvoke使用emgu進行人臉識別測試時出現錯誤

基本上我試圖只是設置一個簡單的程序,將採取網絡攝像頭飼料,並檢查它的臉,如果是這樣火甚至(我會變得更復雜隨着時間的推移)

我見過使用EMGU(即沒有工作人臉識別的幾個例子),所以我認爲我吠叫右樹,但是當我的代碼

var cap = new Capture(0); 

我收到了「Emgu.CV.CvInvoke

所以伊夫加入適當的(至少我認爲)引用的DLL並添加using語句只是我不知道自己還能做什麼。

顯然我錯過了一些東西。

我不確定共享我的整個項目的最佳方式是什麼(我願意接受建議),但有人知道在c#express 2010中編譯的工作示例嗎?或者有一個教程,其中包含要添加的文件?

感謝

+0

請更具體地說明您遇到的問題。當你說「我得到一個Emgu.CV.CvInvoke」時,你是什麼意思?這是編譯時錯誤(換句話說,你不能編譯項目)或運行時錯誤?如果是運行時,這是一個例外還是別的。 – 2011-02-08 18:05:23

+0

另外,請指定項目類型(ASP.NET web應用程序,WinForms桌面應用程序,WPF桌面應用程序等) – 2011-02-08 18:06:19

+0

winform應用程序 – Crash893 2011-02-09 03:45:43

回答

2

如果按照EmguCV維基你會發現在運行您的代碼沒有問題:

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(); 
} 
0

在仔細檢查了你的dll後,好像還沒有複製cvextern.dll !!!

0

將cvextern.dll和另一個需要複製到輸出文件夾的dll添加爲dll的鏈接,然後轉到該鏈接的屬性,並在高級屬性上將CopyToOutputDirectory值設置爲「Copy如果更新「或」始終複製「。 要添加爲鏈接,當添加現有項目時,添加按鈕是一個向下箭頭的箭頭,單擊它並顯示「添加爲鏈接」選項。