Win10(64bit)+Emgu CV3.0.0+VS2013 下載&安裝&配置
1.描述
Emgu CV是OpenCV影象處理庫在跨平臺.Net下的封裝。允許用.Net相容語言來呼叫 OpenCV函式,如C#、VB、VC++、IronPython等。同時該封裝可以在Mono平臺編譯並且允許在Windows,Linux,Mac OS X,iPhone,iPad和Android裝置上執行。2.下載Emgu CV
官網下載: https://sourceforge.net/projects/emgucv/本文使用的版本:emgucv-windows-universal 3.0.0.2157
下載地址: http://pan.baidu.com/s/1slaifO5 密碼:iqsv ( 取自參考博文作者的網盤連結
3.安裝Emgu CV
將Emgu CV解壓到一個磁碟下(不建議C盤,裝在D盤下比較好)。4.配置Emgu CV
類似opencv3.0.0的配置,開啟我的電腦->系統屬性。
選擇“高階系統設定”。
選擇“環境變數”。
在“系統變數”中選擇“path”項,點選“編輯”按鈕。
在“編輯環境變數”對話方塊中,選擇“新建”,在編輯框中輸入任意路徑,如“111”,然後選擇“瀏覽”找到路徑D:\EmguCv3.0\emgucv-windows-universal 3.0.0.2157\bin\x64(這裡我的EmguCv檔案放在D盤中,其他位置也可以,而且這裡配置的是64位的,如果你要配置32位的,可以選擇D:\EmguCv3.0\emgucv-windows-universal 3.0.0.2157\bin\x86)。
5.配置VS
step1:開啟VS2013,新建一個C#窗體應用程式。解決方案、專案名稱定為“CameraCapture”。step2:給專案檔案新增引用。在專案檔案“CameraCapture”的“reference”上右鍵,彈出選單專案,點選“Add Reference”,進入“引用管理器”對話方塊。
在“引用管理器”中,選則“Browse->Browse..”瀏覽引用檔案。
選擇3個常用dll檔案,點選“Add”新增到“引用管理器”。
在“應用管理器”中勾選三個dll檔案,點選“OK”新增到“reference”下。
step3:新增Emgu Cv工具。TOOLS->Choose Toolbox Items(這是英文版VS,和中文版差不多)
在“Choose Toolbox Items”對話方塊中選擇“Browse”進入瀏覽對話方塊。
進入EmguCv所在的bin資料夾下,找到圖中的檔案,選中開啟。
在“Choose Toolbox Items”對話方塊中出現四個工具項HistogramBox、ImageBox、MatrixBox、PanAndZoomPictureBox,勾選這四個工具項。點選“OK”。
選擇“View->Toolbox”,快捷鍵Ctrl+Alt+X,開啟“工具欄”。
在“Toolbox”中,我們可以看到general中出現四個工具項。如果沒有這些工具,你要檢查一下當前狀態是不是處於對話方塊design狀態,如果不是,選擇“solution->Form1.cs”。在“Toolbox”中,在搜尋欄中,搜尋一下,看看這四個工具項是否存在。
這裡需要新增兩個工具項“Button”和“ImageBox”,找到相應的工具項,拖到對話方塊設計檢視中或雙擊均可。
適當調整介面設計大小。
選中圖片框imageBox1,在相應的屬性表中,修改如下資訊:
(Name):CamImageBox
BorderStyle:Fixedsingle
(Name):btnStart
Text:Start!
在“CameraCapture.cs”中新增引用檔名稱。
using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.Util;
在“CameraCapture”類中新增全域性變數。
//declaring global variables
private Capture capture; //takes images from camera as image frames
private bool captureInProgress; // checks if capture is executing
private void ProcessFrame(object sender, EventArgs arg)
{
Image<Bgr, Byte> ImageFrame = capture.QueryFrame();
CamImageBox.Image = ImageFrame;
}
#region if capture is not created, create it now
if (capture == null)
{
try
{
capture = new Capture();
}
catch (NullReferenceException excpt)
{
MessageBox.Show(excpt.Message);
}
}
#endregion
if (capture != null)
{
if (captureInProgress)
{
//if camera is getting frames then stop the capture and set button Text
// "Start" for resuming capture
btnStart.Text = "Start!"; //
Application.Idle -= ProcessFrame;
}
else
{
//if camera is NOT getting frames then start the capture and set button
// Text to "Stop" for pausing capture
btnStart.Text = "Stop";
Application.Idle += ProcessFrame;
}
captureInProgress = !captureInProgress;
}
接著,新增函式“ReleaseData”。
private void ReleaseData()
{
if (capture != null)
capture.Dispose();
}
儲存,編譯,執行。
點選按鈕“Start!”後,彈出如下錯誤。
如果,問題仍然存在。 需要將“D:\EmguCv3.0\emgucv-windows-universal 3.0.0.2157\bin\x64”下的四個dll檔案複製到“...\CameraCapture\CameraCapture\bin\x64\Debug”下,重新編譯執行。 正確的執行結果。配置結束。
工程檔案下載地址: http://download.csdn.net/detail/mingjieshendu/9873932 參考資料: [1] https://stackoverflow.com/questions/31226020/emgucv-capture-error-cannot-implicitly-convert-type-emgu-cv-mat-to-emgu-cv-i [2] http://blog.csdn.net/u012343179/article/details/51906338 [3] http://www.cnblogs.com/bomo/archive/2013/03/28/2986113.html