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 ...
随机推荐
- ubuntu 添加字体
1. 下载自己需要安装的字体文件 eg: yaheiconsolashybrid.ttf 2. 将字体文件放在目录/home下 3. 到目录/usr/share/fonts/truetype/下建立目 ...
- 【bug解决】ios微信浏览器中背景音乐无法播放
我记得之前在一次项目中,出现过浏览报错: 当时的文档链接如右:[解决]HTML5新标签audio的autoplay自动播放属性失效的解决方案 所以在这次H5的制作中,我使用了iframe来加载音频文件 ...
- Genymotion 配置
配置Android的SDK
- cookbook 11.1 在文本控制台中显示进度条
任务: 在进行长时间操作时,向用户显示一个"进度指示条". 解决方案: #coding=utf-8 import sys class progressbar(object): de ...
- vps能ping通但是ssh无法连接
一.全国ping测试网页https://tools.ipip.net/ping.php 如果100%丢包率,那么肯定被q了,如果没有,也不一定没被q,进入下一步 二.国内外端口扫描测试http://t ...
- phpcms9 从注入点入手和 从前台getshell
弄了3天了 这个点 总结一下这三天的坑吧 0X01 注入点入手 /index.php?m=wap&c=index&a=init&siteid=1 获取cookie 传给 us ...
- BZOJ2208连通数
还是挺简单的tarjan. 判断时可能重复,直接bitset搞定. 首先tarjan缩点,每个scc的内部肯定能互相到达,更一下,而且一个scc里的各个点的贡献肯定是一样的,topsort,更新答案就 ...
- ThinkPhp sql语句执行方法
ThinkPHP内置的ORM和ActiveRecord模式实现了方便的数据存取操作,而且新版增加的连贯操作功能更是让这个数据操作更加清晰,但是ThinkPHP仍然保留了原生的SQL查询和执行操作支持, ...
- python pymysql 连接 mysql数据库进行操作
1.数据库的连接操作 import pymysql conn = pymysql.connect(host=', db='oldboydb') # host表示ip地址,user表示用户名,passw ...
- Android RecyclerView与ListView比较
RecyclerView 概述 RecyclerView 集成自 ViewGroup .RecyclerView是Android-support-V7版本中新增的一个Widgets,官方对于它的介绍是 ...