Emgu 学习之HelloWorld
安装和配置
系统Win10,VS2013,下载Emgu安装包libemgucv-windesktop-3.4.3.3016
安装到了E:\OpenCV\emgucv-windesktop 3.4.3.3016
打开官方的例子,试着运行HelloWorld,会在E:\OpenCV\emgucv-windesktop 3.4.3.3016\bin下面生成 X64 X86两个文件夹,里面是

新建一个Console工程,添加引用,主要是上面目录下的这四个dll文件

因为我们自己的第一个程序使用到了System.Drawing.Point,所以添加引用

HelloWorld项目1
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CVHelloWorld
{
class Program
{
static void Main(string[] args)
{ String win1 = "Test Window"; //The name of the window
CvInvoke.NamedWindow(win1); //Create the window using the specific name Mat img = new Mat(, , DepthType.Cv8U, ); //Create a 3 channel image of 400x200
img.SetTo(new Bgr(, , ).MCvScalar); // set it to Blue color //Draw "Hello, world." on the image using the specific font
CvInvoke.PutText(
img,
"Hello, world",
new System.Drawing.Point(, ),
FontFace.HersheyComplex,
1.0,
new Bgr(, , ).MCvScalar); CvInvoke.Imshow(win1, img); //Show the image
CvInvoke.WaitKey(); //Wait for the key pressing event
CvInvoke.DestroyWindow(win1); //Destroy the window if key is pressed
}
}
}
然后根据平台,将X85或者X64文件夹复制到程序目录
效果如下

其他配置
工具,选择项,浏览到Emgu.CV.UI.dll,可以添加控件
还可以将E:\OpenCV\emgucv-windesktop 3.4.3.3016\bin添加到环境变量Path中去。
HelloWorld 项目2
代码
static void Main(string[] args)
{
Mat img=CvInvoke.Imread("faces.png");
CvInvoke.NamedWindow("读取图像", NamedWindowType.AutoSize);
CvInvoke.Imshow("读取图像", img);
CvInvoke.WaitKey(); //Wait for the key pressing event
CvInvoke.DestroyWindow("读取图像"); //Destroy the window if key is pressed
}
显示图像

将上面的图片高斯模糊
代码
static void Main(String[] args)
{
Mat image = CvInvoke.Imread("faces.png");
CvInvoke.NamedWindow("TEST_IN", Emgu.CV.CvEnum.NamedWindowType.AutoSize);
CvInvoke.NamedWindow("TEST_OUT", Emgu.CV.CvEnum.NamedWindowType.AutoSize);
CvInvoke.Imshow("TEST_IN", image); Mat output=new Mat();
CvInvoke.GaussianBlur(image, output, new Size(, ), , );
//CvInvoke.GaussianBlur(output, output, new Size(5, 5), 3, 3);
CvInvoke.Imshow("TEST_OUT", output);
CvInvoke.WaitKey(); }
结果显示2个窗口,原图片和模糊的图片

DownSampling
static void Main(String[] args)
{
Mat image = CvInvoke.Imread("faces.png");
CvInvoke.NamedWindow("TEST_IN", Emgu.CV.CvEnum.NamedWindowType.AutoSize);
CvInvoke.NamedWindow("TEST_OUT", Emgu.CV.CvEnum.NamedWindowType.AutoSize);
CvInvoke.Imshow("TEST_IN", image);
Mat output=new Mat();
CvInvoke.PyrDown(image, output);
CvInvoke.Imshow("TEST_OUT", output);
CvInvoke.WaitKey();
}
显示灰度图和Canny边缘检测
static void Main(String[] args)
{
Mat image = CvInvoke.Imread("faces.png");
CvInvoke.NamedWindow("TEST_GRAY", Emgu.CV.CvEnum.NamedWindowType.AutoSize);
CvInvoke.NamedWindow("TEST_CANNY", Emgu.CV.CvEnum.NamedWindowType.AutoSize);
CvInvoke.Imshow("TEST_IN", image);
Mat imgGray=new Mat();
Mat imgCny = new Mat();
CvInvoke.CvtColor(image, imgGray, Emgu.CV.CvEnum.ColorConversion.Bgr2Gray);
CvInvoke.Imshow("TEST_GRAY", imgGray); CvInvoke.Canny(imgGray, imgCny, , , , true);
CvInvoke.Imshow("TEST_CANNY",imgCny);
CvInvoke.WaitKey();
}

Emgu 学习之HelloWorld的更多相关文章
- Emgu学习之(四)——图像阈值
http://www.cnblogs.com/CoverCat/p/5043833.html Visual Studio Community 2015 工程和代码:http://pan.baidu.c ...
- AspectJ基础学习之三HelloWorld(转载)
AspectJ基础学习之三HelloWorld(转载) 一.创建项目 我们将project命名为:aspectjDemo.然后我们新建2个package:com.aspectj.demo.aspect ...
- Emgu学习之(二)——图像读取、显示、保存
visual Studio Community 2015 工程和源代码:http://pan.baidu.com/s/1o6u5Fdw 内容 在这篇文章中将提到以下内容: 从文件中读取图像 Image ...
- [Cocos2d-x for WP8学习笔记] HelloWorld结构分析
先来看一下目录结构: Assets:游戏资源文件,图片音频等,Resource文件夹也有类似功能 include:用于放置游戏头文件 Shaders:渲染器着色器文件(大雾) cocos2dorig. ...
- [Cocos2d-x for WP8学习笔记] HelloWorld
Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2. ...
- Emgu学习之(三)——操作图像数据
Visual Studio Community 2015 工程和代码:http://pan.baidu.com/s/1jHmlQeE 内容 在这篇文章中将提到以下内容: 修改像素值 图像ROI 图像加 ...
- Emgu学习手册
作为opencv的c#封装库.emgu可以满足基本的图像处理功能,经过测试,效果还可以,主要用于windows窗体应用程序的开发,或者wpf,你可以用来做ocr,也可以用来做人脸识别或者可以用来做定位 ...
- Emit学习(1) - HelloWorld
之前看过Dapper(使用到了Emit), CYQ.Data(另一种思路,没有使用Emit)类的框架之后, 也想自己做一个小框架玩一下, 不过此时能力太过欠缺, 做不了Cyq.Data或者PDF.Ne ...
- Emgu学习之(一)——Emgu介绍
OpenCV“OpenCV是一个开源的计算机视觉库.OpenCV采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上.OpenCV还提供了Python.Ruby.MATLA ...
随机推荐
- sql——limit
PageHelper: https://blog.csdn.net/baidu_38083619/article/details/82463058 Sql执行顺序: https://blog.csdn ...
- 【Winform-自定义控件】 DataGridView多维表头
[datagridview与treeview绑定] treeview 代码: DataTable dtable = new DataTable("Rock") ...
- hdu 5753
Permutation Bo Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- ETL工具-KETTLE教程专栏1----术语和定义
1-资源库 资源库是用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中. 资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文 ...
- jQuery选择器(6)
一:基本选择器 标签选择器:$("标签名"); 返回一组元素集合(匹配相同的标签名) 类选择器:$(".class类名"); 返回一组元素集合(匹配相同的cla ...
- http状态码301和302详解及区别——辛酸的探索之路
原文链接:https://blog.csdn.net/grandPang/article/details/47448395 一直对http状态码301和302的理解比较模糊,在遇到实际的问题和翻阅各种 ...
- java 根据html模板生成html文件
1.代码部分 import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test. ...
- Java多线程-程序运行堆栈分析
class文件内容 class文件包含JAVA程序执行的字节码:数据严格按照格式紧凑排列在class文件中的二进制流,中间无任何分隔符:文件开头有一个0xcafebabe(16进制)特殊的一个标志. ...
- SRS之监听端口的管理:RTMP
1. 监听端口管理的入口函数 监听端口的管理入口在 run_master 函数中,如下: int run_master() { ... if ((ret = _srs_server->liste ...
- [SQL server2008筛选时报错,无法为该请求检索数据 解决方案]
当SQL数据太多时,我们需要通过筛选来查询自己需要的数据. 当我在使用SQLserver 2008的时候 遇到了这个错误1 以下是微软提供的解决方案的网址 (SQL SERVER SP1补丁) htt ...