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 ...
随机推荐
- hdu 6059 Kanade's trio
题 OwO http://acm.hdu.edu.cn/showproblem.php?pid=6059 解 由于每个数字最多是30位,枚举数字每一位考虑, 建一棵记录前缀(位的前缀,比如10拆成10 ...
- Codevs 1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组
1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 今年是国 ...
- java中如何补齐汉字字符
一个汉字相当于两个字符,所以需要输入法的时候切换到[中文全角],中文全角占用2个字符(一个空格),半角占用1个字符
- sh_17_字符串的查找和替换
sh_17_字符串的查找和替换 hello_str = "hello world" # 1. 判断是否以指定字符串开始 print(hello_str.startswith(&qu ...
- 2、dubbo基础知识
1.简介 2.dubbo架构 3.dubbo环境搭建 注意:cmd命令都是在bin目录的地址栏直接输入 xxx.cmd 4.配置dubbo-admin 步骤一: 步骤二: 步骤三: 步骤四: 步骤五: ...
- (十一)C语言之选择结构
- Linux 竞态条件和临界区
1. 临界区和竞态条件: 临界区:访问和操作共享数据的代码段: 竞态条件:当有多个线程同时进入临界区时,执行结果取决于线程的执行顺序: 如下述代码,当多个线程同时调用func函数,对共享数据sum进行 ...
- python中列表的简单用法
1.定义list >>> li = ["a", "b", "mpilgrim", "z", " ...
- koa 应用生成器
通过应用 koa 脚手架生成工具 可以快速创建一个基于 koa2 的应用的骨架 1.全局安装 npm install koa-generator -g 2.创建项目 koa koa_demo 3.安装 ...
- go get命令在go mod目录下与正常目录执行的区别
转载自https://www.jianshu.com/p/0a2ebb07da54 非$GOPATH目录下的go mod项目 $ go mod init test $ cat go.mod modul ...