Google Code Prettify

2013年11月19日 星期二

C# visual studio 2012 EmuCV 安裝教學 與 Emgu.CV.CvInvoke 解決


EmguCV 是從 OpenCV裡包成專給 C#用的一個函式庫,

功能可以說是非常強大,可以稱得上是目前用C#學影像處理必學的 open source

可惜的是它的語法方式比較像是舊版OpenCV C-Style的風格改編,

如果一開始就是學C++-Style的人在上手方面可能會覺得比較陌生,

不過還是大力推薦它!!


編譯環境

windows7 64bit

emgucv 2.4.9 beta

visual studio 2112 express


1.先下載 EmguCV 函式庫

2.在我的電腦裡設定環境變數

在解壓縮資料夾中,找到:

..\EmguCV\bin

..\EmguCV\bin\x64    (for 64位元)

..\EmguCV\bin\x86    (for 32位元)



3.在專案上增加參考路徑(reference path)

在專案上按右鍵,選擇屬性(property) ,把bin資料夾內要使用的版本資料夾加進來



4.加入參考 dll

在專案上按右鍵,Add reference



5.加入UI Tool

在工具(tool) -> Choose Tool Items

加入Emgu.CV.UI.dll

加入後可以在 form 的工具列看到多了幾樣UI 選擇



6.開始編譯

到這邊就已經完成囉,這邊示範的程式是

按下open按鈕,就可以開啟對話窗選擇圖片,把它讀進 pictureBox 裡

Code:

//  Created by vince 
//  Copyright (c) 2013年 vince. All rights reserved.
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;           //for emguCV
using Emgu.CV.Structure; //for Bgr

namespace c_sharp_emgucv_setup
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {            
            OpenFileDialog filename = new OpenFileDialog();
            if (filename.ShowDialog() == DialogResult.OK)
            {
                string name = filename.FileName;
                Image img = new Image(name);
                pictureBox1.Image = img.ToBitmap();
            }
            
        }
    }
}


7.執行結果


看到圖就代表成功囉!!


8.特殊情況

有些人會在編譯成功後,執行時跳出

Emgu.CV.CvInvoke 的錯誤訊息,

可以試著把 ..bin\x64 (64 位元) 或 ..bin\x86 (32 位元)  資料夾中所有相關的

opencv_core249.dll
opencv_imgproc249.dll
......

等相關opencv_ 開頭的dll 直接丟進編譯後產生出來的debug 或release資料夾,

再執行一次應該就可以了!!(我在windows7 32bit 的電腦裡有實際用過,有成功)




2 則留言:

  1. 作者已經移除這則留言。

    回覆刪除
  2. 請問一下 我灌好之後路徑變成這樣http://ppt.cc/c1qQ 請問是為什麼?

    回覆刪除