凸缺陷

物体与该凸包的任何偏差都可以被认为是凸缺陷。

OpenCV附带了一个现成的函数来查找它,cv.convexityDefects()。基本函数调用如下所示:

hull = cv.convexHull(cnt,returnPoints = False)
defects = cv.convexityDefects(cnt,hull)

注意:我们必须在找到凸包时传递returnPoints = False,以便找到凸缺陷。

它返回一个数组,其中每一行包含这些值 - [起点,终点,最远点,到最远点的近似距离]。我们可以使用图像将其可视化。我们绘制一条连接起点和终点的线,然后在最远点绘制一个圆。请记住,返回的前三个值是cnt的索引。所以我们必须从cnt中提取这些值。

import cv2 as cv
import numpy as npimg = cv.imread('star.jpg')
img_gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
ret,thresh = cv.threshold(img_gray, 127, 255,0)
contours,hierarchy = cv.findContours(thresh,2,1)
cnt = contours[0]hull = cv.convexHull(cnt,returnPoints = False)
defects = cv.convexityDefects(cnt,hull)for i in range(defects.shape[0]):s,e,f,d = defects[i,0]st

Python-OpenCV中的图像处理 » 轮廓:更多函数相关推荐

  1. python识别图像中绿色的部分_[OpenCV-Python] OpenCV 中的图像处理 部分 IV (四)

    部分 IV OpenCV 中的图像处理 21 OpenCV 中的轮廓 21.1 初识轮廓 目标 • 理解什么是轮廓 • 学习找轮廓,绘制轮廓等 • 函数:cv2.findContours(),cv2. ...

  2. (三)OpenCV中的图像处理之轮廓

    注释:本文翻译自OpenCV3.0.0 document->OpenCV-Python Tutorials,包括对原文档种错误代码的纠正 该章节分为以下四个小节: (一)     Contour ...

  3. python去除图片复杂背景_[OpenCV-Python] OpenCV 中的图像处理 部分 IV (五)

    部分 IV OpenCV 中的图像处理 22 直方图 22.1 直方图的计算,绘制与分析 目标 • 使用 OpenCV 或 Numpy 函数计算直方图 • 使用 Opencv 或者 Matplotli ...

  4. OpenCV 中的图像处理 004_平滑图像

    本文主要内容来自于 OpenCV-Python 教程 的 OpenCV 中的图像处理 部分,这部分的全部主要内容如下: 改变色彩空间 学习在不同色彩空间之间改变图像.另外学习跟踪视频中的彩色对象. 图 ...

  5. 第四章:OpenCV中的图像处理

    第四章:OpenCV中的图像处理 本章节你将学习图像的改变色彩空间.提取对象.图像的几何变换.图像的阈值.平滑图像等OpenCV图像处理的基本内容. 更多内容请关注我的GitHub库:TonyStar ...

  6. OpenCV中的图像处理 —— 傅里叶变换+模板匹配

    OpenCV中的图像处理 -- 傅里叶变换+模板匹配 现在也在逐渐深入啦,希望跟大家一起进步越来越强 目录 OpenCV中的图像处理 -- 傅里叶变换+模板匹配 1. 傅里叶变换 1.1 Numpy实 ...

  7. OpenCV中的图像处理 —— 图像阈值+图像平滑+形态转换

    OpenCV中的图像处理 -- 图像阈值+图像平滑+形态转换 目录 OpenCV中的图像处理 -- 图像阈值+图像平滑+形态转换 1. 图像阈值 1.1 简单阈值 1.2 自适应阈值 1.3 Otsu ...

  8. OpenCV中的图像处理 —— 改变颜色空间+图像几何变换

    OpenCV中的图像处理 -- 改变颜色空间+图像几何变换 这一部分主要介绍OpenCV图像处理中的改变颜色空间和图像的几何变换,颜色空间的改变应用非常广泛,在处理图像的实际问题中,经常需要要图像变换 ...

  9. 番外3. Python OpenCV 中如何绘制各种图形?

    本系列专栏写作方式 本系列专栏写作将采用首创的问答式写作形式,快速让你学习到 OpenCV 的初级.中级.高级知识. 3. Python OpenCV 中如何绘制各种图形? 本篇博客主要分享一下在 P ...

  10. python图像边缘检测_使用python获取图像中形状的轮廓(x,y)坐标

    我需要使用python获得下面图像的轮廓坐标(x,y)的矩阵.使用python获取图像中形状的轮廓(x,y)坐标 我尝试用OpenCV的精明探测器和发现的轮廓,但我得到了很多的轮廓,我不知道如何让一个 ...

最新文章

  1. 一年参加一次就够,全新升级的AI开发者大会议程出炉!
  2. HTTP Host 头攻击,这是什么鬼?
  3. 手机端登陆github产生ssl handshake aborted error如何解决?
  4. 微软云创益大赛获奖团队风采:做一个中国特色的.Net源代码社区
  5. VMware发布新版vSphere6.5虚拟化平台,助力企业数字化转型
  6. mysql内置的变量,MySQL服务器模式及相关内置变量
  7. java.net.unknown_android -------- java.net.UnknownServiceException
  8. 【牛客 - 157F】三轮(dp,分治fft)
  9. mysql什么情况会刷脏页_mysql-刷脏页(12)
  10. 前端开发 做一个新闻列表
  11. spring aop如何在切面类中获取切入点相关方法的参数、方法名、返回值、异常等信息
  12. 数字逻辑设计(3)------卡诺图化简
  13. 知道建模中的UV吗?
  14. android这只椭圆背景,Android 背景样式shape - oval椭圆、圆
  15. Ice飞冰页面配置菜单配置日志打印环境配置《六》
  16. webrtc入门:13.pion webrtc开源的webrtc框架
  17. 【无标题】【全开源】bat编辑器4.5
  18. ubuntu22.04装机完配置流程
  19. 个性篮球队名_你的篮球个性是什么
  20. 我,喜提招商银行,当爹啦

热门文章

  1. DM8:达梦数据库定时自动全库备份与删除备份
  2. Linux解压tar文件失败
  3. 餐饮业数字化转型升级的必要性
  4. win7计算机无法识别分辨率,win7系统屏幕分辨率不能调如何解决?
  5. nchar 和 nvarchar
  6. mysql xtrabackup_MySQL 数据热备工具 XtraBackup 的介绍及使用
  7. hive里面如何把unixtimestamp转成普通的日期形式
  8. QT之简易的聊天工具的实现(Socket通信)
  9. 怎样搞懂Linux内核内存管理中的KASAN实现原理
  10. 修改订单html,修改保洁订单.html