已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#结合EmguCV编程可能是本人文化层次比较低的原因,做事总喜欢自己的方式,这深深影响了编程的风格。我感觉在C#中图像的加载显示已经做的不错了,所以感觉没必要调用EmguCv中的函数来实现加载显示等功能了,在C#中,通常用的简单的图像处理过程,我们可以自己写,甚至在不安全方式下用上指针来做。比如图像的灰度化等。但是有些图像和 视屏的处理过程,如果自己写,太费事,EmguCv中有写好的,我们何不调用,甚至有时候我们可以直接调用C+或者C写的代码,我们只是用C#完成人机交互这个过程,而核心处理的可以调用各种,比如EmguCv中的方法,C或者C+写的方法,反正目的就是保证综合的性能比较好,即有好的人机交互,又有比较快的速度。以前在C#中做过图像灰度化,然后二值化的代码,是自己写了一个类,调用处理的,现在我们有现成的EmguCv,因此今天我尝试做一下用C#只处理加载显示等任务,而用EmguCV处理灰度化和二值化。前面基础的略,直接到所有都配置好,然后开始加载和处理过程,基础的不知道可以去我百度文库看看。现在已经用C#设计好基本的功能了,即加载显示,保存图片,还可以关闭。如下图。接下来我们调用EmguCV处理这些图片。首先是灰度化,这里涉及到几个技巧,即从C#中承载图像的类型转换到EmguCv中承载图像的类型;用的函数为:Image img1 = new Image(curBitmap);参数根据格式调整,这里是把彩色的C#中curBitmap类型转换为EmguCv中的相对应的类型,接下来灰度化,处理函数为:Image Gray_image = img1.Convert();最后涉及到的是从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 public partial class Form1 : Form private string curFileName; private Bitmap curBitmap; public Form1() InitializeComponent(); private void menuItem2_Click(object sender, EventArgs e) OpenFileDialog opnDlg = new OpenFileDialog(); 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); curBitmap = new Bitmap(curFileName); /pictureBoxShow.Image = curBitmap; this.AutoScroll = true; this.AutoScrollMinSize = new Size(int)(curBitmap.Width),(int)(curBitmap.Height); catch MessageBox.Show(programe error); Invalidate(); private void menuItem3_Click(object sender, EventArgs e) if (curBitmap = null) return; SaveFileDialog saveDlg = new SaveFileDialog(); saveDlg.Title = Save as; saveDlg.OverwritePrompt = true; /create a filter; saveDlg.Filter = BMP files(*.bmp)|*.bmp| + Gif files(*.gif)|*.gif| + JPEG files(*jpg)|*.jpg; saveDlg.ShowHelp = true; if (saveDlg.ShowDialog() = DialogResult.OK) string fileName = saveDlg.FileName; string strFilExtn = fileName.Remove(0, fileName.Length - 3); switch (strFilExtn) case bmp: curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp); break; case jpg: curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg); break; case gif: curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Gif); break; default: break; private void menuItem4_Click(object sender, EventArgs e) this.Close(); private void Form1_Paint(object sender, PaintEventArgs e) if(curBitmap!=null) Graphics g = e.Graphics; g.DrawImage(curBitmap, new Rectangle(this.AutoScrollPosition.X, this.AutoScrollPosition.Y, (int)(curBitmap.Width ),(int)(curBitmap.Height); private void menuItem6_Click(object sender, EventArgs e) if(curBitmap!=null) Image img1 = new Image(curBitmap); Image Gray_image = img1.Convert(); curBitmap = Gray_image.ToBitmap(); /curBitmap=Gray_image.Bitmap(); this.Invalidate(); private void menuItem7_Click(object sender, EventArgs e) if(curBitmap!=null) I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防暑降温设备销售合同合同
- 电梯改造升级合同模板
- 学校集中定点采购制度
- 医院宣传科采购制度
- 对材料采购管理制度
- 气体采购制度
- 幼儿园采购工作管理制度
- 公司采购材料制度
- 云南玉溪市易门县2025-2026学年高一上学期期末考试历史试卷(无答案)
- 广东省东莞市2024-2025学年七年级历史下学期期末教学质量检测题(无答案)
- 2026年浙江省衢州市六校联谊初三百日冲刺考试英语试题含解析
- 一次性使用止血套环产品技术要求北京中诺恒康生物
- 政法单位联席会议制度
- 休克诊疗规范课件
- 2026年陕西航空职业技术学院单招职业倾向性考试题库及一套答案详解
- (甘肃一模)2026年甘肃省高三年级第一次模拟考试英语试题(含答案)+听力音频+听力原文
- 2025-2026学年教科版(新教材)初中信息科技八年级第二学期教学计划及进度表
- XX医院关于2025年医保基金监管专项检查工作的整改报告
- 钢丝pe施工方案(3篇)
- 2026年医疗AI辅助手术报告
- 新版二年级下册道德与法治12《见贤要思齐》教学课件
评论
0/150
提交评论