安装和配置

系统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的更多相关文章

  1. Emgu学习之(四)——图像阈值

    http://www.cnblogs.com/CoverCat/p/5043833.html Visual Studio Community 2015 工程和代码:http://pan.baidu.c ...

  2. AspectJ基础学习之三HelloWorld(转载)

    AspectJ基础学习之三HelloWorld(转载) 一.创建项目 我们将project命名为:aspectjDemo.然后我们新建2个package:com.aspectj.demo.aspect ...

  3. Emgu学习之(二)——图像读取、显示、保存

    visual Studio Community 2015 工程和源代码:http://pan.baidu.com/s/1o6u5Fdw 内容 在这篇文章中将提到以下内容: 从文件中读取图像 Image ...

  4. [Cocos2d-x for WP8学习笔记] HelloWorld结构分析

    先来看一下目录结构: Assets:游戏资源文件,图片音频等,Resource文件夹也有类似功能 include:用于放置游戏头文件 Shaders:渲染器着色器文件(大雾) cocos2dorig. ...

  5. [Cocos2d-x for WP8学习笔记] HelloWorld

    Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2. ...

  6. Emgu学习之(三)——操作图像数据

    Visual Studio Community 2015 工程和代码:http://pan.baidu.com/s/1jHmlQeE 内容 在这篇文章中将提到以下内容: 修改像素值 图像ROI 图像加 ...

  7. Emgu学习手册

    作为opencv的c#封装库.emgu可以满足基本的图像处理功能,经过测试,效果还可以,主要用于windows窗体应用程序的开发,或者wpf,你可以用来做ocr,也可以用来做人脸识别或者可以用来做定位 ...

  8. Emit学习(1) - HelloWorld

    之前看过Dapper(使用到了Emit), CYQ.Data(另一种思路,没有使用Emit)类的框架之后, 也想自己做一个小框架玩一下, 不过此时能力太过欠缺, 做不了Cyq.Data或者PDF.Ne ...

  9. Emgu学习之(一)——Emgu介绍

    OpenCV“OpenCV是一个开源的计算机视觉库.OpenCV采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上.OpenCV还提供了Python.Ruby.MATLA ...

随机推荐

  1. js设置日期格式

    取数据时后台返回的日期数据是一串数字,前台显示时需要将时间格式化,通过以下代码转换. var format = function(time, format){    var t = new Date( ...

  2. 解压 压缩 C#

    public class SharpZip { public SharpZip() { } /// <summary> /// 压缩 /// </summary> /// &l ...

  3. 「美团 CodeM 初赛 Round A」试题泛做

    最长树链 树形DP.我们发现gcd是多少其实并不重要,只要不是1就好了,此外只要有一个公共的质数就好了.计f[i][j]表示i子树内含有j因子的最长链是多少.因为一个数的不同的质因子个数是log级别的 ...

  4. 未关闭虚拟机直接关闭vmware引发的一系列问题——Windows下linux虚拟机

    虚拟机长时间挂起重新打开时卡顿,无法开启,脑抽直接关闭了vmware软件引起的一系列问题. 原因是关闭了vmware,但是相应的虚拟机并没有关闭,所以虚拟机不能重开 会出现如下提示 解决方案如下: 1 ...

  5. 数据分析-excel数据分析(数据分析师岗位分析)

    使用的函数:字符截取函数:LEFT(),MID()  定位函数:FIND()   统计函数:COUNTIF() 1.获取薪资的区间的最小值min和最大值max 处理方法:新插入多列,使用find()定 ...

  6. JavaWeb-SpringBoot_使用MySQL管理用户登录注册+接入腾讯短信SDK_demo

    使用Gradle编译项目 传送门 项目已托管到Github上 传送门 JavaWeb-SpringBoot_一个类实现腾讯云SDK发送短信 传送门 用户注册 用户并非一定要输入正确的手机验证码去激活当 ...

  7. shiro 自定义filter

    1.自定义登录filter package com.creatunion.callcenter.filter; import com.alibaba.fastjson.JSONObject; impo ...

  8. webpack搭建多页面系统(一):对webpack 构建工具的理解

    为什么使用webpack构建工具? 1.开发效率方面: 在一般的开发过程中,分发好任务后,每个人完成自己单独的页面,如果有的人开发完成之后,接手别人的任务,就有可能造成开发时候的冲突. 如果利用模块化 ...

  9. idea 远程代码调试

    声明一点:重要的事情说3遍 本地代码和服务器代码必须一致 本地代码和服务器代码必须一致 本地代码和服务器代码必须一致 第一步,创建remote 第二步.填写服务器信息 第三部.tomcat/bin/s ...

  10. win10无法连接windows服务器,无法连接SENS服务

    本文链接:https://blog.csdn.net/weixin_38374974/article/details/80475566 膜拜大佬 首先,进入windows界面的时候,前期加载速度变得极 ...