Visual studio 2013 express 下 安裝 EmguCV - WebCam
Hello World 是很順利,但是接下來就很不順了,一直無法完全所有的Compile動作,最後我連 OpenCV的 Source 都下載下來,準備要自己重 Build Library,還好在試 OpenCV 與 Visual Studio 2013 c++ 時 ,OpenCV 所附的Sample程式可以在 Visual Studio 2013下完成 exe 檔,所以 我想應該是我 install EmguCV 時可能遺漏一些步驟,所以我想再重新 Install 一次 EmguCV。
這次我下載的版本是 emgucv-2.4.9-alpha:
emgucv-gpu-2.4.9.1847 |
EmguCV 64bit |
安裝完後,在 Emgu下有:
emgucv-windows-universal-cuda 2.9.0.1922
emgucv-windows-universal-gpu 2.4.9.1847
我因為是要作 64 位元的系統,接著在 System 環境變數後附加 D:\Emgu\emgucv-windows-universal-gpu 2.4.9.1847\bin\x64,這設定可將游標指在"電腦"上按右鍵,選 "內容" 會看見系統資訊:
選擇進階系統設定,再到 環境變數:
編輯系統變數中的 PATH:
在原有PATH 的內容最後先加上 ";" ,再加上 EmguCV bin 下 的 x64:
在我的電腦上是:
D:\Emgu\emgucv-windows-universal-gpu 2.4.9.1847\bin\x64
接著用 Visual Studio 2013 建一個新的c# 下 Windows Form 應用程式 專案:
在我原本 Visual Studio 2013 中的組態管理只有 Any CPU的組態,如下圖:
到方案總管的方案上按右鍵選擇組態管理員:
進入組態管理員,也是將 Any Cpu 下拉,選擇 "新增":
或面會出現 :
在新平台中選擇 x64後按確定返回主畫面,主畫面會出現 x64:
接著在主畫面方案總管中的參考,按右鍵選擇 "加入參考":
在參考管理員中先用 "瀏覽" 到
D:\Emgu\emgucv-windows-universal-gpu 2.4.9.1847\bin
加入 Emgu.CV.dll、Emgu.CV.ML.dll、Emgu.CV.UI.dll、Emgu.Util.dll、ZedGraph.dll共五个DLL文件,加完後方案總管的參考會如下:
接著在方案總管C#應用程式上按右鍵-> 加入-> 現有項目
我是將 D:\Emgu\emgucv-windows-universal-gpu 2.4.9.1847\bin\x64 下所有的 DLL 一次全部加入,接著再到方案總管把剛才加入的 DLL 全部選定:
這時會看到屬性中有一欄位是複製到輸出目錄,請把 不要複製改成永遠複製。
這時可以按下 CTRL-F5,接著檢查一下專案目錄下 \bin\x64\Debug,前面加入的 DLL 文件,應該都自動 複製過來了。
先測一段小程式,先在 Form 上 加一個 button 和 pictureBox,程式如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.Util;
using Emgu.CV.Structure;
namespace WindowsFormsApplication_EmguCv
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog Openfile = new OpenFileDialog();
if (Openfile.ShowDialog() == DialogResult.OK)
{
Image<Bgr, Byte> My_Image = new Image<Bgr, byte>(Openfile.FileName);
pictureBox1.Image = My_Image.ToBitmap();
}
}
}
}
按 Ctrl-F5,順利的話,應該會要求一個圖型檔,最後顯示在 picturebox 中:
再來進入"選擇工具箱項目" , 先選擇"瀏覽":
找到 Emgu.CV.UI.dll 加入工具箱,這時你就會看到 工具箱上多了 imagebox 、histogramBox、MatrixBox ..., 這時就可以將 form 上的 pictureBox 改為 ImageBox ,成式改為:
public Form1()
{
InitializeComponent();
cap = new Capture(0);
Application.Idle += new EventHandler(Application_Idle);
}
void Application_Idle(object sender, EventArgs e)
{
Image<Bgr, Byte> My_Image = cap.QueryFrame();
imageBox1.Image = cap.QueryFrame();
}
再執行就會看到 webcam 傳回的影像。
留言
張貼留言
請多指教