C#结合EmguCv编程

本文介绍了如何在C#中利用EmguCv库进行图像处理,包括图像的灰度化和二值化操作。通过C#进行图像加载、显示和保存,然后借助EmguCv进行转换和处理,展示了从C# Bitmap对象到EmguCv Image对象的转换方法,以及使用EmguCv进行灰度化和二值化的具体代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可能是本人文化层次比较低的原因,做事总喜欢自己的方式,这深深影响了编程的风格。我感觉在C#中图像的加载显示已经做的不错了,所以感觉没必要调用EmguCv中的函数来实现加载显示等功能了,在C#中,通常用的简单的图像处理过程,我们可以自己写,甚至在不安全方式下用上指针来做。比如图像的灰度化等。但是有些图像和 视屏的处理过程,如果自己写,太费事,EmguCv中有写好的,我们何不调用,甚至有时候我们可以直接调用C++或者C写的代码,我们只是用C#完成人机交互这个过程,而核心处理的可以调用各种,比如EmguCv中的方法,C或者C++写的方法,反正目的就是保证综合的性能比较好,即有好的人机交互,又有比较快的速度。

以前在C#中做过图像灰度化,然后二值化的代码,是自己写了一个类,调用处理的,现在我们有现成的EmguCv,因此今天我尝试做一下用C#只处理加载显示等任务,而用EmguCV处理灰度化和二值化。

前面基础的略,直接到所有都配置好,然后开始加载和处理过程,基础的不知道可以去我百度文库看看。

现在已经用C#设计好基本的功能了,即加载显示,保存图片,还可以关闭。如下图。


接下来我们调用EmguCV处理这些图片。

首先是灰度化,这里涉及到几个技巧,即从C#中承载图像的类型转换到EmguCv中承载图像的类型;

用的函数为:

Image<Bgr, Byte> img1 = newImage<Bgr, Byte>(curBitmap);

参数根据格式调整,这里是把彩色的C#中curBitmap类型转换为EmguCv中的相对应的类型,接下来灰度化,处理函数为:

Image<Gray, Byte> Gray_image =img1.Convert<Gray, Byte>();

最后涉及到的是从EmguCv中的承载图像的类型转换为C#中的类型,使用的函数为:XX.ToBitmap();

其中XX代表在EmguCV中实例化的对象,这里的化是存放转换为灰度图像的img1;

所以从EmguCv转换为C#中承载类的函数写为:

curBitmap= Gray_image.ToBitmap();

 

同理可以实现对灰度化的二值化,代码贴在最后边,下面是结果图:



全部的代码在下面,由于只是个例子,没有特定对应的名字,看起来有些不好看,不过不要在意这些。


usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值