C结合EmguCv编程.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C#结合EmguCV编程可能是本人文化层次比较低的原因,做事总喜欢自己的方式,这深深影响了编程的风格。我感觉在C#中图像的加载显示已经做的不错了,所以感觉没必要调用EmguCv中的函数来实现加载显示等功能了,在C#中,通常用的简单的图像处理过程,我们可以自己写,甚至在不安全方式下用上指针来做。比如图像的灰度化等。但是有些图像和视屏的处理过程,如果自己写,太费事,EmguCv中有写好的,我们何不调用,甚至有时候我们可以直接调用C++或者C写的代码,我们只是用C#完成人机交互这个过程,而核心处理的可以调用各种,比如EmguCv中的方法,C或者C++写的方法,反正目的就是保证综合的性能比较好,即有好的人机交互,又有比较快的速度。以前在C#中做过图像灰度化,然后二值化的代码,是自己写了一个类,调用处理的,现在我们有现成的EmguCv,因此今天我尝试做一下用C#只处理加载显示等任务,而用EmguCV处理灰度化和二值化。前面基础的略,直接到所有都配置好,然后开始加载和处理过程,基础的不知道可以去我百度文库看看。现在已经用C#设计好基本的功能了,即加载显示,保存图片,还可以关闭。如下图。接下来我们调用EmguCV处理这些图片。首先是灰度化,这里涉及到几个技巧,即从C#中承载图像的类型转换到EmguCv中承载图像的类型;用的函数为:ImageBgr, Byte img1 = new ImageBgr, Byte(curBitmap);参数根据格式调整,这里是把彩色的C#中curBitmap类型转换为EmguCv中的相对应的类型,接下来灰度化,处理函数为:ImageGray, Byte Gray_image = img1.ConvertGray, Byte();最后涉及到的是从EmguCv中的承载图像的类型转换为C#中的类型,使用的函数为:XX.ToBitmap();其中XX代表在EmguCV中实例化的对象,这里的化是存放转换为灰度图像的img1;所以从EmguCv转换为C#中承载类的函数写为:curBitmap = Gray_image.ToBitmap();同理可以实现对灰度化的二值化,代码贴在最后边,下面是结果图:全部的代码在下面,由于只是个例子,没有特定对应的名字,看起来有些不好看,不过不要在意这些。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Emgu.CV;using Emgu.CV.Structure;using Emgu.Util;namespace Image3{publicpartialclassForm1 : Form {privatestring curFileName;privateBitmap curBitmap;public Form1() { InitializeComponent(); }privatevoid menuItem2_Click(object sender, EventArgs e) {OpenFileDialog opnDlg = newOpenFileDialog(); opnDlg.Filter = All Image files|*.bmp;*.gif;*.jpg;*.ico;/**.emf;,*.wmf|Bitmap Files(*.bmp;*.gif;*.jpg; + *.ico)|*.bmp;*.gif;*.jpg;*.ico| + Meta Files(*.emf;*.wmf;*.png)|*.emf;*.wmf;*.png;*///Seting the title of dialog; opnDlg.Title = Open image files; opnDlg.ShowHelp = true;if (opnDlg.ShowDialog() == DialogResult.OK) { curFileName = opnDlg.FileName;try {//curBitmap = (Bitmap)Image.FromFile(curFileName); curBitma

文档评论(0)

max + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档