绘图

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

  1. 【CITE】利用鼠标绘图C#

    实例018 利用鼠标绘图 光盘位置:光盘\MR\01\018 在常用的画图软件中,用户一般都可以通过鼠标在其中绘图,那么该功能是如何实现的呢?本实例将讲解如何使用C#实现通过拖动鼠标在窗体上绘图的功能 ...

  2. 有关Canvas的一点小事--鼠标绘图

    1.  如何根据鼠标位置获取canvas上对应位置的x,y. 2.  canvas的图糊了,设置宽和高的方式不对. 3.鼠标绘图代码 之前听说过canvas这个元素,但是实际上并没有深入了解过.不过日 ...

  3. matlab学习笔记8 基本绘图命令-三维绘图

    一起来学matlab-matlab学习笔记8 基本绘图命令_6 三维绘图 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 ...

  4. C语言实现鼠标绘图

    使用C语言+EGE图形库(Easy Graphics Engine).思路是通过不断绘制直线来实现鼠标绘图的功能,前一个时刻鼠标的坐标作为直线的起点,现在时刻的坐标作为终点(严格意义是线段而不是直线) ...

  5. C#-gdi绘图,双缓冲绘图,Paint事件的触发

    一. 画面闪烁问题与双缓冲技术 1.1 导致画面闪烁的关键原因分析: 1  绘制窗口由于大小位置状态改变进行重绘操作时 绘图窗口内容或大小每改变一次,都要调用Paint事件进行重绘操作,该操作会使画面 ...

  6. Latex--TikZ和PGF--高级文本绘图,思维绘图,想到--得到!

    Latex--TikZ和PGF--高级文本绘图,思维绘图,想到--得到! TikZ和PGF是一种用在TeX上的CLI绘图工具.CLI和GUI是两种常见的绘图方式,前者是所想即所得(WYTIWYG)的, ...

  7. cocos2d-x游戏引擎核心之六——绘图原理和绘图技巧

    一.OpenGL基础 游戏引擎是对底层绘图接口的包装,Cocos2d-x 也一样,它是对不同平台下 OpenGL 的包装.OpenGL 全称为 Open Graphics Library,是一个开放的 ...

  8. QT_8_Qt中的事件处理_定时器事件_定时器类_事件分发器_事件过滤器_绘图事件_高级绘图事件_绘图设备_QFile 文件读写_QFileInfo文件信息

    Qt中的事件处理 1.1. 捕获QLabel中是鼠标事件 1.2. enterevent 鼠标进入 1.3. leaveevent 鼠标离开 1.4. 鼠标按下MyLabel::mousePressE ...

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

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

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

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

随机推荐

  1. js 获取对应的url参数

    举例:http://localhost:5000/?sss=sdf&fdd=123 1.设置或获取整个 URL 为字符串 window.location.href 值:  http://loc ...

  2. XML -- XML基础知识

    1.XML的结构 XML的结构采用的是树结构,树结构就是一种一对多的关系结构. XML必定有一个根节点.因为,在解析这个XML时,需要有个起始位置进行遍历解析,这个跟节点就是起始位置. 2.XML的元 ...

  3. matplotlib(二):折线图

    import numpy as np import matplotlib.pyplot as plt import matplotlib.dates as mdates # 解决中文显示问题 plt. ...

  4. 省市县镇村五级地址智能提取(标准地址源来自国家统计局官网)SpringBoot+Elasticsearch 5.6

    项目目的 根据传入的地址,智能提取所属的省市县镇村5级地址.例如:用户输入“江苏南通嗨安李堡镇陈庄村8组88号”,我们需要提取到江苏省  南通市  海安县(即便用户输入了错字,“海”写成了“嗨”) 李 ...

  5. 创建docker静态化IP

    配置桥接网络 桥接本地物理网络的目的,是为了局域网内用户方便访问 docker 实例中服务,不需要各种端口映射即可访问服务. 但是这样做,又违背了 docker 容器的安全隔离的原则,工作中辩证的选择 ...

  6. Centos-Redhat下远程桌面的方法 & Redhat改Centos源

    折腾了好几天才搞定,Redhat下远程桌面的方法,首先保证本身已经装了桌面,并且可以ssh访问 由于系统中自带python2环境,装了anaconda以及它带的python3环境,这个必须存在(前提) ...

  7. HR问“你目前有几个offer”,聪明人会怎么说?

    点击上方“程序员江湖”,选择“置顶或者星标” 你关注的就是我关心的!   一个朋友和我聊天,说起自己最近被虐的面试经历.他985毕业,工作3年,看中了一家月薪1.5万的工作,准备跳槽.虽然在北京不算高 ...

  8. 微信小程序<web-view>出现{"base_resp":{"ret":-1}}

    最近在使用小程序<web-view>这个标签加载一个https网页的时候出现了{"base_resp":{"ret":-1}}这一个问题 搞了好久~ ...

  9. RGB颜色透明度转换

    100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% ...

  10. http常见状态码分析

    200:这个是最常见的http状态码,表示服务器已经成功接受请求,并将返回客户端所请求的最终结果 301:客户端请求的网页已经永久移动到新的位置,当链接发生变化时,返回301代码告诉客户端链接的变化, ...