外接矩形

外接最小面积矩形(旋转矩形)

外接闭合圆形

外接三角形

外接多边形(凸包检测)

//多边形包围private void btn_surround_Click(object sender, EventArgs e){if (ib_original.Image != null){Mat src = new Image<Bgr, byte>(ib_original.Image.Bitmap).Mat;Mat dst = new Mat();Image<Bgr, byte> img = new Image<Bgr, byte>(ib_original.Image.Bitmap);CvInvoke.Canny(src, dst, 120, 180);//创建用于存储轮廓的VectorOfVectorOfPoint数据类型VectorOfVectorOfPoint contours = new VectorOfVectorOfPoint();CvInvoke.FindContours(dst, contours, null, Emgu.CV.CvEnum.RetrType.External,Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple);//获取联通区域个数int ksize = contours.Size;for (int i = 0; i < ksize; i++){//获取独立的连通轮廓VectorOfPoint contour = contours[i];string str = ((Button)sender).Text;switch (str){case "外接矩形":{Rectangle rect = CvInvoke.BoundingRectangle(contour);img.Draw(rect, new Bgr(0, 0, 255), 2);}break;case "外接面积最小矩形":{RotatedRect rrect = CvInvoke.MinAreaRect(contour);img.Draw(rrect, new Bgr(0, 0, 255), 2);}break;case "外接闭合圆形":{CircleF circle = CvInvoke.MinEnclosingCircle(contour);img.Draw(circle, new Bgr(0, 0, 255), 2);}break;case "外接三角形":{VectorOfPoint tri = new VectorOfPoint();//存储三角形double area = CvInvoke.MinEnclosingTriangle(contour, tri);img.Draw(tri.ToArray(), new Bgr(0, 0, 255), 2);}break;case "外接多边形":{//也叫凸包检测VectorOfPoint hull = new VectorOfPoint();//存储凸包点CvInvoke.ConvexHull(contour, hull);img.Draw(hull.ToArray(), new Bgr(0, 0, 255), 2);}break;default:break;}}ib_result.Image = img;}}

EmguCv多边形包围相关推荐

  1. OpenCV精进之路(八):图像轮廓和图像分割修复——轮廓查询和多边形包围轮廓

    Canny一类的边缘检测算法可以根据像素之间的差异,检测出轮廓边界的像素,但它没有将轮廓作为一个整体.所以要将轮廓提起出来,就必须将这些边缘像素组装成轮廓. OpenCV中有一个很强大的函数,它可以从 ...

  2. 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(三)使用多边形将轮廓包围

    8.3 使用多边形将轮廓包围 8.3.1 将轮廓包围的多边形函数 1.返回外部边界:boundingRect()函数 (1)作用:返回指定点集最外面的边界矩形(四个顶点) (2)函数原型:Rect b ...

  3. opencv 多边形近似物体形状

    前面我们学习过最小外接矩和最小外接圆,那么可以用一个最小的多边形包围物体吗?当然可以: 其中 cv.approxPolyDP() 的参数1是源图像的某个轮廓:参数2(epsilon)是一个距离值,表示 ...

  4. 图像轮廓、凸包、图像的矩、分水岭算法、图像修补

    文章目录 1.查找并绘制轮廓 1.1 寻找轮廓:findContours() 函数 1.2 绘制轮廓:drawContours() 函数 1.3 示例程序:轮廓查找 1.4 综合示例:查找并绘制轮廓 ...

  5. VTK修炼之道50:图形基本操作进阶_网格模型的特征边 与 封闭性检测

    1.封闭性检测 由于受原始数据.重建方法的限制,得到的网格模型并不是封闭的.有时为了显示或者处理某些要求,需要网格必须是封闭的. 封闭性网格应该比较好理解,比如一个球形网格. 1.1网格模型边的分类 ...

  6. OpenGL编程低级错误范例手册

    看到一篇OpenGL编程的错误总结,对我初学来说应该比较有用,先保留,嘿嘿... 谢谢原文作者的贡献:http://www.cnitblog.com/linghuye/archive/2005/08/ ...

  7. 【浅墨著作】 OpenCV3编程入门 内容简介 勘误 配套源代码下载

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 经过近一 ...

  8. (31)ObjectARX2015 + vs2012选择集

    1. 说明         在 ObjectARX 开发过程中,经常需要用户和 AutoCAD 之间进行交互操作,除了前面介绍的acedGetXX系列函数之外,选择集是AutoCAD和用户交互操作的重 ...

  9. opencv3-编程入门学习笔记

    文档才是最重要的,所有函数都能在文档中找到opencv文档 顺便说我用的IDE QTcreator,工作空间不在源码处,而在debug里,因此所需文件要放在那里 具体目录在 项目-运行-working ...

最新文章

  1. MOOON-server新消息处理接口
  2. 史上最强神经网络绘制神器来啦!一系列暗黑操作!
  3. React Native学习笔记-1:JSC profiler is not supported.(转载)
  4. BPEL 语言介绍和应用
  5. 搭建MongoDB分片集群
  6. 使用docker-compose配置redis服务
  7. Disk Quota磁盘配额
  8. [转]Xdebug----Failed loading
  9. JavaOne正在重建动力
  10. mybatis处理集合、循环、数组和in等语句的使用
  11. 「任性」的C语言之父:因拒付论文装订费错失博士学位,论文52年后重见天日...
  12. 多因素方差分析中预测因素的筛多_用回归来理解方差分析(二):两因素方差分析...
  13. python定义test方法_向python/django失败的测试方法的详细信息中添加自定义/调试消息的任何方法unittest.TestCase?...
  14. RuntimeError: Working outside of request context. This typically means that you attempted to use fun
  15. java传输文件暂停_java – 在文件下载中实现暂停/恢复
  16. golang | windows平台golang环境搭建(过坑之后)
  17. 设计模式之---解释器模式
  18. 《剑指offer》第五十二题(两个链表的第一个公共结点)
  19. dq坐标系下无功功率表达式_基于数学形态学的谐波检测
  20. java 噪声信道模型_噪声信道模型zz

热门文章

  1. 张小龙:神一样的人物,做啥啥成功,替腾讯立下赫赫战功
  2. k8s和knative的镜像在未fq的情况下拉取超时解决方案
  3. 在Ubuntu中搭建tftp服务,使用X210开发板加载系统测试
  4. 小程序云开发(一)微信登录实现
  5. python龟速爬取整本小说
  6. 仿京东、淘宝首页,通过两层嵌套的RecyclerView实现tab的吸顶效果
  7. 阿里云文件存储NAS简介和购买流程
  8. 基于matlab的升压斩波实验,基于MATLAB的升压斩波电路的仿真_贾立柱
  9. 网际控制报文协议ICMP的应用——traceroute
  10. 组成原理——指令格式(地址码)