当前位置: 首页 > news >正文

Python Opencv实践 - 凸包检测(ConvexHull)

import cv2 as cv
import numpy as np
import matplotlib.pyplot as pltimg = cv.imread("../SampleImages/stars.png")
plt.imshow(img[:,:,::-1])img_contour = img.copy()
#得到灰度图做Canny边缘检测
img_gray = cv.cvtColor(img_contour, cv.COLOR_BGR2GRAY)
edges = cv.Canny(img_gray, 120, 255, 0)
#提取并绘制轮廓
contours,hierarchy = cv.findContours(edges, cv.RETR_TREE, cv.CHAIN_APPROX_NONE)
img_contour = cv.drawContours(img_contour, contours, -1, (0,255,0), 2)
plt.imshow(img_contour, cmap=plt.cm.gray)#凸包检测
#hull = cv.convexHull(points, clockwise, returnpoints)
#hull: 输出凸包结果,n*1*2数据结构,n为外包围圈的点的个数
#points: 输入的坐标点,通常为1* n * 2 结构,n为所有的坐标点的数目
#clockwise:转动方向,TRUE为顺时针,否则为逆时针;
#returnPoints:默认为TRUE,返回凸包上点的坐标,如果设置为FALSE,会返回与凸包点对应的轮廓上的点。
#参考资料:https://blog.csdn.net/lovetaozibaby/article/details/103214672
hulls = []
for contour in contours:hull = cv.convexHull(contour)hulls.append(hull)
img_convex_hull = cv.drawContours(img, hulls, -1, (0,255,0), 2)plt.imshow(img_convex_hull[:,:,::-1])

 

 

http://www.lryc.cn/news/157252.html

相关文章:

  • IP网络广播系统有哪些优点
  • 【LeetCode】83. 删除排序链表中的重复元素
  • 【大数据】Flink 详解(七):源码篇 Ⅱ
  • stable diffusion实践操作-SD原理
  • C++ Primer Plus第十三章编程练习答案
  • Elasticsearch:wildcard - 通配符搜索
  • 配置类安全问题学习小结
  • IMX6ULL移植篇-uboot源码目录
  • SAP MM学习笔记27- 购买依赖(采购申请)
  • C++零碎记录(八)
  • 基于matlab的扩频解扩误码率完整程序分享
  • 算法:轮转数组---循环取模运算
  • Vue教程
  • 算法之双指针题型:
  • vue传递给后端时间格式问题
  • php使用jwt作登录验证
  • 【zlm】 PTS DTS
  • 【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之DDR3 IP简单读写测试(六)
  • 第6章 内核模块符号导出实验(iTOP-RK3568开发板驱动开发指南 )
  • Android12.0首次开机默认授予app运行时权限(去掉运行时授权弹窗)第二种方法
  • conda和Python的虚拟环境如何结合使用,以及二者之间到底有什么区别?
  • 宇凡微YE09合封芯片,集成高性能32位mcu和2.4G芯片
  • 使用perf_analyzer和model-analyzer测试tritonserver的模型性能超详细完整版
  • docker 部署springboot(成功、截图)
  • VMware ubuntu空间越用越大
  • stm32 学习笔记:GPIO输出
  • css换行
  • 面试算法-常用数据结构
  • 【动态规划刷题 10】等差数列划分 最长湍流子数组
  • redis 配置与优化