OpenCV的C#版本EmguCV-1、安装和环境配置
目录
一、前言
在.NET中使用EmguCV可以分为两种方式,一种就是将下载的exe程序安装、配置好后在工程中应用,另一种就是将DLL库文件和运行需要的文件直接拷贝到工程中。
二、EmguCV安装和配置
1、EmguCV exe软件安装
EmguCV是OpenCV的.NET版本,支持C#、VB.NET等编程语言。本次测试软件环境为win10+VS2013+EmguCV3.0。
EmguCV各个版本官方下载地址:Emgu CV - Browse /emgucv at SourceForge.net
EmguCV3.0网盘下载
链接:https://pan.baidu.com/s/1iiIQamh6qSaY6RGonbtFKw
提取码:hccj
(1)双击exe安装程序,然后点击下一步
(2)选择安装路径,路径名称不要使用中文,然后点击下一步开始解压安装
(3)计算机属性配置
选择“计算机”——>右击“属性”——>“高级系统设置”——>“高级”——>“环境变量”——>“系统变量”,双击Path添加安装目录(如“C:\EmguCV\emgucv-windows-universal 3.0.0.2157\bin\x64”)中间用分号英文隔开。(32位操作系统选“…\bin\86”)
2、EmguCV库文件方法
添加库文件引用,若Emgu.CV.UI已经存在则先删除再添加,否则程序运行出错。
复制到工程Debug或者Release文件夹下面,否则无法运行
在工具箱中添加EmguCV选项卡,然后添加Emgu.CV.UI.dll,即可添加对应的控件
三、C#工程中引用
1、创建winform工程,使用添加库文件方法
下载库文件
https://download.csdn.net/download/panjinliang066333/85711171
将该库文件夹复制指定路径位置
2、在工程添加引用选中的Dll库文件,若Emgu.CV.UI已经存在则先删除再添加,否则程序运行出错。
3、Winform程序
不管是控制台程序还是Winform程序,都要将该文件夹复制到Debug或者Release文件夹下面。
UI界面
添加3个imageBox(Emgu.CV.UI.ImageBox)
设置背景黑色、SizeMode为Zoom
代码
private void Form1_Load(object sender, EventArgs e)
{
//简单图像处理
Mat img = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\EmguCV Test\Image\LZL.jpg", LoadImageType.Unchanged);
if (img.IsEmpty)
{
Console.WriteLine("can not load the image \n");
}
//CvInvoke.Imshow("Image", img);
imageBox1.Image = img;
//转换为灰度图像
Mat grayImg = new Mat();
CvInvoke.CvtColor(img, grayImg, ColorConversion.Rgb2Gray);
//CvInvoke.Imshow("Gray Image", grayImg);
imageBox2.Image = grayImg;
//查找边缘
Mat sobelImg = new Mat();
CvInvoke.Sobel(grayImg, sobelImg, grayImg.Depth, 1, 0);
//使用canny算子查找边缘
Mat cannyImg = new Mat();
CvInvoke.Canny(grayImg, cannyImg, 20, 40);
//CvInvoke.Imshow("Canny Image", cannyImg);
imageBox3.Image = cannyImg;
}
运行
4、创建控制台测试工程
程序
static void Main(string[] args)
{
//简单图像处理
Mat img = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\EmguCV Test\Image\LZL.jpg", LoadImageType.Unchanged);
if (img.IsEmpty)
{
Console.WriteLine("can not load the image \n");
}
CvInvoke.Imshow("Image", img);
;
Mat grayImg = new Mat();
//转换为灰度图像
CvInvoke.CvtColor(img, grayImg, ColorConversion.Rgb2Gray);
CvInvoke.Imshow("Gray Image", grayImg);
//sobel
Mat sobelImg = new Mat();
CvInvoke.Sobel(grayImg, sobelImg, grayImg.Depth, 1, 0);
//使用canny算子查找边缘
Mat cannyImg = new Mat();
CvInvoke.Canny(grayImg, cannyImg, 20, 40);
CvInvoke.Imshow("Canny Image", cannyImg);
CvInvoke.WaitKey(0);
}
运行
工程下载连接
https://download.csdn.net/download/panjinliang066333/85711221
相关文章
- C#中的深度学习(一):使用OpenCV识别硬币
- c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习
- c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询
- C#订阅与发布标准实现 visual studio code .net 开发 设计模式之☞策略模式 C#字符串转二进制、二进制转字符串 c# 接口的协变和逆变 c# 使用迭代器来创建可枚举类型 博客园首页新随笔联系订阅管理 随笔 - 117 文章 - 0 评论 - 57 c# 创建,加载,修改XML文档
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
- c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)
- C# 匿名类型 分组 求和
- 利用反射快速给Model实体赋值 使用 Task 简化异步编程 Guid ToString 格式知多少?(GUID 格式) Parallel Programming-实现并行操作的流水线(生产者、消费者) c# 无损高质量压缩图片代码 8种主要排序算法的C#实现 (一) 8种主要排序算法的C#实现 (二)
- [C#基础]c#中的BeginInvoke和EndEndInvoke
- C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能
- Word控件Spire.Doc 【Table】教程(7): 如何在C#中用表格替换word文档中的文本
- C# (初入江湖)-猫狗大战(面向对象的三大特征)
- C#学习记录——GDI+绘图的应用
- C#中泛型类和扩展方法如何使用
- c#调用c++(Opencv)dll的实例
- C#中Monitor和Lock的用法区别
- C#字符串常见操作总结详解
- C# 制作安装包
- C#中泛型类的定义
- C# HTML
- C# Json 字段返回
- [转[C# 中感叹号(!) 作用盘点
- 《敏捷软件开发:原则、模式与实践(C#版.修订版)》一1.4 参考文献
- 数字转换字母C#与VB.net方法
- C#委托Delegate教程案例
- 【Unity之c#专题篇】——【不动如山核心章—掌握核心只需这一篇】
- 《C#零基础入门之百识百例》(六十三)结构体类型数组 -- 学生数据存储
- C# 获取所有对象的字符串表示一ToString方法
- C#实现对象序列化为XML
- VB.NET转C#代码的工具
- c#代码规则,C#程序中元素的命名规范
- C#与.NET Framework c#编程语言,和java是一样的。(c#,java) -->javaweb,asp.net