EmguCV 绘画图形
1.Image类中绘图常用函数列表

实践验证
///初始化图片
private void Form1_Load(object sender, EventArgs e)
{
oldpic = new Emgu.CV.Image<Bgr, byte>(500, 400, new Bgr(Color.AliceBlue));
pictureBox1.Image = oldpic.Bitmap;
}
/// 画-矩?形?
Emgu.CV.Image<Bgr, byte> pic1 = oldpic.Clone();
pic1.Draw(new Rectangle(100, 100, 120, 150), new Bgr(Color.Red), 5);
pic1.Draw(new Rectangle(100, 100, 120, 150), new Bgr(Color.Red), 5, Emgu.CV.CvEnum.LineType.FourConnected, 1); //缩小为原来1/2,起点位置也一样
pic1.Draw(new Rectangle(100, 100, 120, 150), new Bgr(Color.Red), 5, Emgu.CV.CvEnum.LineType.FourConnected, 2);//缩小为原来1/4,起点位置也一样
pic1.Draw(new Rectangle(100, 100, 120, 150), new Bgr(Color.Red), 5, Emgu.CV.CvEnum.LineType.FourConnected, 3);//缩小为原来1/8,起点位置也一样
pictureBox1.Image = pic1.Bitmap;
pic1.Dispose();
运行如下:

画圆和椭圆类如画矩形 ,画文字
Emgu.CV.Image<Bgr, byte> pic1 = oldpic.Clone();
pic1.Draw(new CircleF(new PointF(100, 100), 50), new Bgr(Color.Red), 5);
pic1.Draw(new Ellipse((RectangleF)(new Rectangle(100, 100, 120, 150))), new Bgr(Color.Red), 5); //注意类型转换
string a = "OK";
pic1.Draw(a, new Point(100, 250), Emgu.CV.CvEnum.FontFace.HersheyComplex, 5, new Bgr(Color.YellowGreen),5);
pictureBox1.Image = pic1.Bitmap;
pic1.Dispose();
运行如下:

工程实际用到画轮廓(根据点位进行),实际上又是调用画线的函数
Point[] poi = new Point[6];
Emgu.CV.Image<Bgr, byte> pic1 = oldpic.Clone();
for (int i = 0; i < 6; i++)
{
poi[i] = new Point(i * 50 + 50, i*i * 8 + 50);
pic1.Draw(new Cross2DF(poi[i], 20, 20), new Bgr(Color.Black), 2);
}
pic1.Draw(poi, new Bgr(Color.Red),3,Emgu.CV.CvEnum.LineType.AntiAlias);
pictureBox1.Image = pic1.Bitmap;
pic1.Dispose();
运行如下:

绘制多线形跟画轮廓一样,主要看是否闭合,第二个参数不同
pic1.DrawPolyline(poi,false, new Bgr(Color.Red), 3, Emgu.CV.CvEnum.LineType.AntiAlias);

对于MAT类可以先转Image 绘完后再转回。
特别指出在实际案例中会 统一一起绘制时采用此方式 int contourIdx 设定负数,全部一起
public void Draw(IInputArray contours, int contourIdx, TColor color, int thickness = 1, LineType lineType = LineType.EightConnected, IInputArray hierarchy = null, int maxLevel = 2147483647, Point offset = null);
EmguCV 绘画图形的更多相关文章
- EmguCV 简单图形绘制
一.圆 public static void cvCircle( IntPtr img, System.Drawing.Point center, //Center of the circle int ...
- (转)第02节:在Canvas上画简单的图形
我们现在已经可以在HTML中使用Fabric.js库了,那这节我们就详细的学习一下如何在canvas上画出简单的图形. 在画东西之前我们需要了解画任何东西的基本三个步骤: 声明画布(canvas),用 ...
- 纯css来画图-border应用
基础知识: Css画图大部分是使用了css中的border来绘画图形,那首先我们就来看下border的基础知识,至于其他的遇到了再讲吧! Border的基础知识: 一般我们这样简写: border: ...
- WPD:Page Download Time Breakdown选项详解
WPD:Page Download Time Breakdown选项详解 “页面下载时间细分”图显示每个页面组件下载时间的细分,可以根据它确定在网页下载期间事务响应时间缓慢是由网络错误引起还是由服务器 ...
- Cacti-安装和使用详解
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.Cacti是通过 snmp get来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RR ...
- Cacti的基本使用
对于Cacti是通过snmpget来获取数据,使用 RRDtool绘画图形,用snmp服务获取数据,然后用rrdtool储存和更新数据,那么就可以简单理解为Cacti就是RRDTool的一个web图形 ...
- 轻松架设时时监控工具Cacti
Cacti是一套基于PHP,MySQL,SNMP及 RRDTool开发的网络流量监测图形分析工具.通过snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂 ...
- LR网页细分图中的时间详解
Web Page Diagnostics: 1)DNS Resolution:浏览器访问一个网站的时候,一般用的是域名,需要dns服务器把这个域名解析为IP,这个过程就是域名解析时间,如果我们在局域网 ...
- Cacti Install
一.Cacti简介 Cacti是通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数.它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查 ...
随机推荐
- 解决service层无法注入
练手时发现个问题,路径404,各种检查发现,多加了一层<context:component-scan base-package="com.yanan.controller"/ ...
- 如何修改nexus的端口号
1. Maven仓库:放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖JAR,这节省了磁盘资源. 简言之,Maven仓库能帮助 ...
- 2017 .NET 開發者須知
筆記-Scott Hanselman 的 2017 .NET 開發者須知 转载http://blog.darkthread.net/post-2017-01-16-dotnet-dev-should- ...
- JAVA中发送电子邮件的方法
JAVA中发送邮件的方法不复杂,使用sun的JavaMail的架包就可以实现. 一.下载JavaMail的架包,并导入项目中,如下: 二.附上代码例子,如下: 1.在main函数中对各项参数进行赋值 ...
- Java并发系列[2]----AbstractQueuedSynchronizer源码分析之独占模式
在上一篇<Java并发系列[1]----AbstractQueuedSynchronizer源码分析之概要分析>中我们介绍了AbstractQueuedSynchronizer基本的一些概 ...
- Unity3d 基本设计开发 原则(提高代码可读性)
参考:http://blog.csdn.net/qq_34134078/article/details/51780356 1.单一原则 即:明确类的定义.通俗来讲,让他们只做一件事,而不是多件事. 提 ...
- unix网络编程第2版(卷1)_第6章_同步_异步
第6章 I/O复用:select和poll函数 6.1概述 在5.12节中,我们看到TCP客户同时处理两个输入:标准输入和TCP套接口.我们遇到的问题是客户阻塞于(标准输入上的)fgets调用,而服务 ...
- MySQL--REPEATABLE-READ隔离级别下读取到的“重复数据”
在MySQL中,使用MVCC来实现REPEATABLE-READ隔离级别,由于SELECT操作不会对数据加锁,其他回话可以修改当前回话所读取过的数据而不会被阻塞,因此读写不冲突. 在MVCC并发控制中 ...
- Eclipse运行Java简单实例
运行eclipse前首先配置好JDK环境变量等 双击这句话可跳转配置环境变量详细步骤 运行eclipse软件 1.File菜单-New - project 2.Java Project - Next ...
- 用swing做一个简单的正则验证工具
直接上代码吧,因为我对swing也不熟悉,照着API一点点拼出来的. import java.awt.event.ActionEvent; import java.awt.event.ActionLi ...