[VS] C# - [01] EmguCV 影像读取

摘要

本章节将会介绍如何使用 EmguCV 套件进行影像读取,若未使用 NuGet 安装EmguCV套件请参照上一篇文章[VS] C# - 使用 NuGet 进行套件安装进行安装。


实作

介面设置

主程式介面请参照图一所示,元件功能如下所述:

textBoxImagePath: 显示选择档案(图像)路径。buttonGetImagePath: 一开始会出现让使用选择路径视窗,并该使用者选择完档案(*.bmp)时显示影像。pictureBoxDisplayImage: 显示使用者选择档案的影像。


图一 MainForm介面


引用与全域变数

即便使用 NuGet 把套件安装至专案,也需要透过 using 的方式把套件引用至类别,因此还是要针对套件进行引用。

using Emgu.CV;using Emgu.CV.Structure;
string m_imagePath;Image<Bgr, Byte> m_image;

备注:若使用 Image<Bgr, Byte> 底下出现错误,请注意是否引用 using Emgu.CV.Structure


选择档案路径

把路径写死固然容易,但我习惯为了让整个软体写的比较弹性化,因此这边採用的是路径选择视窗让使用者选择位置,当然也可以把路径写死。

下面是常用的路径选择:

OpenFileDialog: 选择已存在的档案,回传路径如C:\Users\Nil\doc\image.bmp。FolderBrowserDialog: 选择路径,回传路径如C:\Users\Nil\doc。SaveFileDialog: 保存档案路径,使用者可定义档案名称如C:\Users\Nil\doc\{fileName}
private void buttonGetImagePath_Click(object sender, EventArgs e){    OpenFileDialog ofd = new OpenFileDialog();    // 显示预设路径。    ofd.InitialDirectory = "./";    // 设定档案储存类型範例为.bmp若要增加其他类型可使用{名称}|.{类型}。    ofd.Filter = "Bitmap Files|*.bmp";    ofd.Title = "选择影像档案";    // 纪录最后视窗路径位置。    ofd.RestoreDirectory = true;    // 显示视窗,当按下确定(OK)时进入。    if (ofd.ShowDialog() == DialogResult.OK)    {        // 保存使用者选择档案的路径位置        m_imagePath = ofd.FileName;        textBoxImagePath.Text = m_imagePath;        // 读取影像并显示。        DisplayImage(m_imagePath);    }}

读取影像

private void DisplayImage(string path){    try    {        // 为 Bitmap 读取方式。        // Bitmap bitmap = new Bitmap(m_imagePath);        // 该方法则为 EmguCV 的读取方式。        m_image = new Image<Bgr, byte>(path);        pictureBoxDisplayImage.Image = (Bitmap)m_image.ToBitmap().Clone();        pictureBoxDisplayImage.Invalidate();    }    catch (Exception ex)    {        Console.WriteLine(ex.Message);    }}

Color 与 Depth 描述:

Color: Gray, Bgr, Bgra, Hsv, Hls, Lab, Luv, Xyz, Ycc, Rgb or Rbgaepth: Byte, SByte, Single, double, UInt16, Int16 or Int32

Image<TColor, TDepth>


结果


图二 选择档案视窗


图三 显示影像


结论

本篇文章透过选择档案视窗的方式取得使用者的路径,并使用 EmguCV 的套件进行影像的读取并显示,虽然使用 Bitmap 也可以将影像读入,但之后若要使用 EmguCV 的套件进行影像处理就可以不用将 Bitmap 再次转换成 EmguCV的格式。

GitHub: Link.


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章