码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • OpenCV(三十五):凸包检测


    1.凸包检测介绍

          凸包检测是计算凸包的一种技术,凸包就是:给定二维平面上的点集,将最外层的点连接起来构成的凸边形,它是包含点集中所有的点。

    2.凸包检测函数convexHull()

    void cv::convexHull ( InputArray  points,

    OutputArray hull,

    boolclockwise = false,

    bool   returnPoints = true

    )

    • points:输入的2D点集
    • hull:输出凸包的顶点
    • clockwise: 方向标志,当参数为true时,凸包顺序为顺时针方向,否则为逆时针方向。returnPoints:输出数据的类型标志,当参数为true时第二个参数输出的结果是凸包顶点的坐标,否则第二个参数输出的结果是凸包顶点的索引。

    3.示例代码:

    1. //凸包检测
    2. void Convex_hull_detection(Mat image){
    3. Mat gray,binary;
    4. cvtColor(image,gray,COLOR_BGR2GRAY);//灰度化
    5. threshold(gray,binary,40,255,THRESH_BINARY);//自适应二值化
    6. //开运算消除细小区域
    7. Mat k= getStructuringElement(MORPH_RECT,Size(3,3),Point(-1,-1));
    8. morphologyEx(binary,binary,MORPH_OPEN,k);
    9. //轮廓的发现与绘制
    10. vector<vector<Point>> contours;//轮廓
    11. vector<Vec4i> hierarchy;//存放轮廓结构变量
    12. findContours(binary,contours,hierarchy,0,2,Point());
    13. for(int n=0;n<contours.size();n++){
    14. //计算凸包
    15. vector<Point> hull;
    16. convexHull(contours[n],hull);
    17. //绘制凸包
    18. for(int i=0;i<hull.size();i++){
    19. //绘制凸包顶点
    20. circle(image,hull[i],4,Scalar(255,0,0,255),2,8,0);
    21. //连接凸包
    22. if(i==hull.size()-1){
    23. line(image,hull[i],hull[0],Scalar(0,0,255,255),2,8,0);
    24. break;
    25. }
    26. line(image,hull[i],hull[i-1],Scalar(0,0,255,255),2,8,0);
    27. }
    28. }
    29. imwrite("/sdcard/DCIM/hull.png",image);
    30. }

    凸包检测的结果: 

  • 相关阅读:
    基于 vite2 + Vue3 写一个在线帮助文档工具
    Linux-用户概念和用户管理命令,用户组概念和用户组管理命令。
    在vue中父组件更新,子组件也会更新吗
    R语言绘制IPCC风格箱线抖动点图
    基于深度学习的“语义通信编解码技术”框架分类
    大学生面试JAVA程序员应该具备的JAVA面试题库
    刷新三观的HP-UX系统中的强指针赋值出core问题
    如何改善交通管制带来的交通拥堵?
    支付宝支付
    【附源码】Python计算机毕业设计网络教育平台设计
  • 原文地址:https://blog.csdn.net/weixin_63357306/article/details/132792277
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号