markdown
還記得2.X版需要下載一包檔案在解壓縮,並設定環境變數
才能在C#上使用EmguCV的函式庫
在EmguCV 4已經可以在C#內建的NuGet套件管理員上做安裝,非常方便
官網安裝教學:
網址
打開VS 進到NuGet套件管理員,搜尋emgu

安裝由Emgu Corporation發布的Emgu.CV.runtime.windows
安裝後來測試看看
讀入圖片並進行邊緣檢測
GUI介面拉一個button 跟picturebox
```=C#
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog o = new OpenFileDialog();
o.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;
o.Title = "請選擇圖片";
o.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*";
if (o.ShowDialog() == DialogResult.OK)
{
Image
image = new Image(o.FileName);
Mat edges = new Mat();
CvInvoke.Canny(image, edges, 3, 3 * 3, 3);
pictureBox1.Image = edges.ToBitmap();
}
}
}
```
打完會出現無法將類型 'Emgu.CV.Image' 隱含轉換成 'System.Drawing.Image
這邊要在NuGet多安裝EmguCV套件,才能將image格式轉換為Bitmap
套件名稱為Emgu.CV.Bitmap
安裝後就可以將Image格式轉換為Bitmap讓picturebox顯示
pictureBox1.Image = image.ToBitmap();
出現一個錯誤
```
識別為 'Emgu.CV.Bitmap, Version=4.4.0.4099, Culture=neutral, PublicKeyToken=7281126722ab4438' 的組件 'Emgu.CV.Bitmap' 會使用 'Emgu.CV.Platform.NetStandard, Version=4.4.0.4099, Culture=neutral, PublicKeyToken=7281126722ab4438',而後者的版本高於識別為 'Emgu.CV.Platform.NetStandard, Version=4.4.0.4061, Culture=neutral, PublicKeyToken=7281126722ab4438' 的參考組件 'Emgu.CV.Platform.NetStandard'
```
這裡須將NuGet內的套件版本修改為同一版本號
對Emgu.CV點擊進行版本更新

就可以執行了
沒有留言:
張貼留言