2020年9月16日 星期三

[C#] 取得WebCam影像


[C#] 取得WebCam影像

 突然心血來潮想要 WebCam 來做一些實驗
上網找一下資料發現C# 可以很容易就可以取得WebCam的影像

要使用Emgu這個套件
EmguCV 封裝了 OpenCV image processing library,允許在.Net的平台上使用

首先下載並安裝 ( libemgucv-windows-x86-2.3.0.1416.exe )
http://sourceforge.net/projects/emgucv/files/emgucv/2.3.0/libemgucv-windows-x86-2.3.0.1416.exe/download

軟體備份

安裝步驟其實就是一直點下一步

點開執行檔的畫面  --> 下一步

License 說明 -->我接受

選擇要安裝的位置 ,可以使用預設也可以自訂安裝路徑
但是要記得裝在哪裡,因為等一下設定環境變數時要用
選好之後 --> 下一步

建立程式的捷徑名稱  -->下一步

選擇要安裝的原件  --> 安裝
一般都是使用預設的設定,如果有其他需求再自行調整

接著就開始安裝了

過程中會問說是否要加入 Debugger 到 VS(Visual Studio 2010) 中 -->是

安裝完成之後要修改環境變數
如果使用預設應該 C:\Emgu\emgucv-windows-x86 2.3.0.1416\bin
如果剛剛安裝是選用自訂路徑,這邊就要跟著調整

環境變數 -> Path -> 編輯
在變數值欄位加入 Emgu的安裝路徑,記得前後面要用分號(;)隔開

到目前為止Emgu算是安裝設定完成了
接下來是如何把 Emgu 加入到 VS 中了

將 Emgu.CV.UI.dll 加入工具箱內
工具 -->選擇工具箱項目

.NET FrameWork 元件 --> 瀏覽
選擇 C:\Emgu\emgucv-windows-x86 2.3.0.1416\bin\Emgu.CV.UI.dll
如果安狀選自訂路徑,這邊也要跟著調整

按下開啟舊檔之後,會出現 Histogrambox 工具箱的選項  -->確定

完成之後到工具箱看有沒有出現下圖紅框裡的四個元件
有的話表示安裝成功了

在執行的專案裡面加入所需要的dll

瀏覽 -->C:\Emgu\emgucv-windows-x86 2.3.0.1416\bin\

選擇 "Emgu.Util.dll" "Emgu.CV.dll" "Emgu.CV.ML.dll" "Emgu.CV.UI.dll" 

如果安裝時自訂路徑,這邊要跟著修正路徑

加入成功之後

還會使用兩個opencv 的dll

opencv_core231.dll

opencv_highgui231.dll

可以在 C:\Emgu\emgucv-windows-x86 2.3.0.1416\bin 裡面找到

如果安裝時自訂路徑,這邊要跟著修正路徑

因為無法參考這兩個dll,所以只能手動放入

放到所要執行專案底下的 bin\Debug

接著就可以來寫個簡單的程式來連接WebCam了

我是使用Window Form來實作

先在設計頁面拉進一個 PictureBox

並命名為 pictureBox1

加入引用會使用到的dll

宣告 WebCam 物件

在建構式中將 WebCam物件連結到攝影機

 抓取畫面事件

執行應該就可以看到畫面了

如果遇到  'Emgu.CV.CvInvoke' 的型別初始設定式發生例外狀況。 的錯誤

在專案的屬性設定裡面將平台目標設為 X64 應該就可以執行

DEMO


沒有留言: