Emgu 学习(3) 绘图,使用鼠标绘图,使用trackbar
绘图
class Program
{
static void Main(String[] args)
{
Mat img = new Mat(, , DepthType.Cv8U, );
img.SetTo(new Bgr(, , ).MCvScalar);
//绘制一条黄色,线宽为4 的反锯齿线段
CvInvoke.Line(img, new Point(, ), new Point(, ), new MCvScalar(, , ),,LineType.AntiAlias);
//绘制圆心为200,100,半径为50,线宽为15的红色空心圆
CvInvoke.Circle(img, new Point(, ), , new MCvScalar(, , ), , LineType.AntiAlias);
//绘制左上角200,300宽高为150,100的绿色矩形框
CvInvoke.Rectangle(img, new Rectangle(, , , ), new MCvScalar(, , ), );
//绘制中心为200,200,大小为150,120,旋转40度,颜色为cyan的椭圆
CvInvoke.Ellipse(img, new RotatedRect(new Point(, ), new Size(, ), ), new MCvScalar(, , ), );
//绘制文字
CvInvoke.PutText(img, "CTC", new Point(, ), FontFace.HersheyComplex, , new MCvScalar(, , ), ); CvInvoke.Imshow("draw", img);
CvInvoke.WaitKey(); }
}
效果

使用鼠标绘制矩形
效果如下,使用鼠标中键拖拉矩形框。

中间黑色的控件是ImageBox,没有缩放
Point pt = new Point();
Mat frame = null;
public Form1()
{
InitializeComponent();
frame=new Mat(imageBox1.Height,imageBox1.Width, DepthType.Cv8U, );
frame.SetTo(new Bgr(, , ).MCvScalar);
CvInvoke.Line(frame, new Point(, ), new Point(, ), new MCvScalar(, , ), , LineType.AntiAlias);
Application.Idle += Run;
} private void Run(object sender,EventArgs e)
{
imageBox1.Image = frame;
} private void imageBox1_MouseDown(object sender, MouseEventArgs e)
{
pt.X = e.X;
pt.Y = e.Y;
} private void imageBox1_MouseUp(object sender, MouseEventArgs e)
{
CvInvoke.Rectangle(frame, new Rectangle(pt.X, pt.Y, e.X-pt.X, e.Y-pt.Y), new MCvScalar(, , ), );
}
}
使用Trackbar调整数值threshold处理

public partial class Form1 : Form
{ Mat src = null;
Mat dst = new Mat();
string path=@"C:\Users\dell\Pictures\mach.jpg";
public Form1()
{
InitializeComponent();
src = CvInvoke.Imread(path);
imageBox1.Image = src; } private void trackBar1_ValueChanged(object sender, EventArgs e)
{
int value = trackBar1.Value;
CvInvoke.Threshold(src, dst, value, , ThresholdType.Binary);
imageBox1.Image = dst;
} }
Emgu 学习(3) 绘图,使用鼠标绘图,使用trackbar的更多相关文章
- 【CITE】利用鼠标绘图C#
实例018 利用鼠标绘图 光盘位置:光盘\MR\01\018 在常用的画图软件中,用户一般都可以通过鼠标在其中绘图,那么该功能是如何实现的呢?本实例将讲解如何使用C#实现通过拖动鼠标在窗体上绘图的功能 ...
- 有关Canvas的一点小事--鼠标绘图
1. 如何根据鼠标位置获取canvas上对应位置的x,y. 2. canvas的图糊了,设置宽和高的方式不对. 3.鼠标绘图代码 之前听说过canvas这个元素,但是实际上并没有深入了解过.不过日 ...
- matlab学习笔记8 基本绘图命令-三维绘图
一起来学matlab-matlab学习笔记8 基本绘图命令_6 三维绘图 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 ...
- C语言实现鼠标绘图
使用C语言+EGE图形库(Easy Graphics Engine).思路是通过不断绘制直线来实现鼠标绘图的功能,前一个时刻鼠标的坐标作为直线的起点,现在时刻的坐标作为终点(严格意义是线段而不是直线) ...
- C#-gdi绘图,双缓冲绘图,Paint事件的触发
一. 画面闪烁问题与双缓冲技术 1.1 导致画面闪烁的关键原因分析: 1 绘制窗口由于大小位置状态改变进行重绘操作时 绘图窗口内容或大小每改变一次,都要调用Paint事件进行重绘操作,该操作会使画面 ...
- Latex--TikZ和PGF--高级文本绘图,思维绘图,想到--得到!
Latex--TikZ和PGF--高级文本绘图,思维绘图,想到--得到! TikZ和PGF是一种用在TeX上的CLI绘图工具.CLI和GUI是两种常见的绘图方式,前者是所想即所得(WYTIWYG)的, ...
- cocos2d-x游戏引擎核心之六——绘图原理和绘图技巧
一.OpenGL基础 游戏引擎是对底层绘图接口的包装,Cocos2d-x 也一样,它是对不同平台下 OpenGL 的包装.OpenGL 全称为 Open Graphics Library,是一个开放的 ...
- QT_8_Qt中的事件处理_定时器事件_定时器类_事件分发器_事件过滤器_绘图事件_高级绘图事件_绘图设备_QFile 文件读写_QFileInfo文件信息
Qt中的事件处理 1.1. 捕获QLabel中是鼠标事件 1.2. enterevent 鼠标进入 1.3. leaveevent 鼠标离开 1.4. 鼠标按下MyLabel::mousePressE ...
- Emgu学习之(四)——图像阈值
http://www.cnblogs.com/CoverCat/p/5043833.html Visual Studio Community 2015 工程和代码:http://pan.baidu.c ...
- Emgu学习之(二)——图像读取、显示、保存
visual Studio Community 2015 工程和源代码:http://pan.baidu.com/s/1o6u5Fdw 内容 在这篇文章中将提到以下内容: 从文件中读取图像 Image ...
随机推荐
- 使用fiddler抓取jmeter发送的请求
使用jmeter发送请求时,有时需要查看发送的请求是否合理,可以使用fiddler更直观的抓取并查看jmeter发送的请求.步骤如下:1.设置fidder-connections 端口号为8888 2 ...
- Remote API(RAPI)之 系统信息
RAPI提供了一些取系统信息的函数 CeGetSystemInfo:返回当前系统信息 CeGetSystemMetrics:获取Windows元素的尺寸和系统设置 CeGetVersionEx:获取当 ...
- Jenkins-邮件模板
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- jquery fadeIn()方法 语法
jquery fadeIn()方法 语法 作用:fadeIn() 方法使用淡入效果来显示被选元素,假如该元素是隐藏的.大理石平台检定规程 语法:$(selector).fadeIn(speed,cal ...
- The Semantics of Constructors(拷贝构造函数之编译背后的行为)
本文是 Inside The C++ Object Model's Chapter 2 的部分读书笔记. 有三种情况,需要拷贝构造函数: 1)object直接为另外一个object的初始值 2)ob ...
- 从gcc到Makefile简易版
1.Makefile的应用 我们主要用它来编译源代码,生成结果代码,然后把结果代码连接起来生成可执行文件或者库文件.2.Makefle简单例子的深入学习 程序概述:为了连接makefile的流程,我将 ...
- 这一次,彻底弄懂「Java字节码文件」
提前祝福各位读者
- IE 不兼容 console 关键字
如果在JS文件中写了console.log()方法,在IE下打开 开发者工具就没问题,不打开就有问题js 报错 不执行等等 ...... (IE这都是什么鬼!!),百度过后的解决方法如下: 好吧,这其 ...
- 回调函数(callback) python / c++ 演示
什么是回调函数? 我们绕点远路来回答这个问题. 编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是 ...
- 关于java中对BigDecimal加减乘除的基本用法
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数. 在实际应用中,需要对更大或者更小的数进 ...