2012年7月27日 星期五

使用EmguCV

20111015124.jpg
EmguCV簡單說就是OpenCV在.Net上的Wrapper
(Net wrapper to the OpenCV image processing library.)

最新版已經到2.4.0
(跟著OpenCV同步更新)

過去剛接觸時覺得安裝很麻煩

現在回過頭看卻覺得其實非常簡單!!

首先到EmguCV下載頁面

可以選擇你想要的版本

目前筆者是使用2.3.0
(2.4.0測試時有發現一些Bug所以就沒更新了!!)

筆者都是直接抓Zip檔

裡面很貼心地包含EmguCV的Source code跟範例程式

也包含了Visual Studio 2008、2010版本
(真的是非常佛心,最新版的還提供2012的版本)

根據使用者需求選擇平台類型(x64或是x86)

下載完後將其解壓縮會產生一個資料夾

到裡面的Solution->VS2010(自己選擇版本)

就可以看到三個方案檔,就直接選Emgu.CV.Example.sln來執行!!

這樣就可以開始體驗EmguCV所提供影像處理上的一切好處和優勢!!

裡面有相當多的範例程式

對著個別範例的專案建置後通常都能順利執行

比較有趣的像是MotionDetection,FaceDetection,ShapeDetection,VideoSurveillance等

face detection

shape detection

video Surveillance


若是要自訂專案並使用EmguCV的功能必須參考他的dll

到剛剛解壓縮出來的資料夾裡的bin資料夾內

可以看到相當多的dll,以2.3.0的x64版本為例

共有28dll檔案 !!

需要直接參考的有Emgu開頭的六個dll檔案

Emgu.CV.dll、Emgu.CV.GPU.dll、Emgu.CV.ML.dll、Emgu.CV.OCR.dll、Emgu.CV.UI.dll、
Emgu.Util.dll

跟間接會參考到的是opencv開頭的十三個dll檔案

opencv_calib3d231.dll、opencv_contrib231.dll、opencv_core231.dll、opencv_features2d231.dll、opencv_ffmpeg_64.dll、opencv_flann231.dll、opencv_gpu231.dll、opencv_highgui231.dll、opencv_imgproc231.dll、opencv_legacy231.dll、opencv_ml231.dll、opencv_objdetect231.dll、opencv_video231.dll

跟一些EmguCV輔助需要的dll檔案

cudart64_40_17.dll、cufft64_40_17.dll、cvextern.dll、cvextern_gpu.dll、npp64_40_17.dll、tesseract.dll

紅色標記的這三個幾乎是絕對必要的的dll檔案

剩餘的dll就要看你使用到那些功能!!

將這些dll全都複製出來到某個資料夾
(方便做參考存取)

然後到你Visual Studio的專案內把參考加入

到EmguCV的線上Docoment就可以查詢所有dll提供的內容

根據你的需求參考你要的dll檔案 (Emgu.CV開頭的dll檔案)

然後再把其餘的所有dll檔案複製到執行專案的執行目錄底下

通常這樣比較萬無一失

等到熟悉你的需求功能再慢慢把複製到執行目錄下多餘的dll檔案移除

比較不會再一開始執行,就遇到無法順利執行的窘境!!!


當專案完成

要放到其他電腦去執行的時候往往又會遇到問題

因為通常寫程式的電腦裡都有安裝Visual Studio,也會順便安裝C++ Redistributable Package

但一般的電腦(真正要執行專案的電腦)可能沒有安裝

這時候要執行EmguCV(應該說是opencv)就會發生問題

這時候就要去下載來安裝啦~

C++ Redistributable Package (x86)C++ Redistributable Package (x64)

當然如果你是用windows service的模式

就可以在安裝條件中選擇事先安裝這樣檔案

就不用這麼麻煩了!!


這裡開始介紹一些用Emgu CV來實作一些簡單的影像處理

沒有留言:

張貼留言