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

复制代码
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = 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])
相关推荐
独孤思维3 分钟前
AI能赚钱,但是赚不了用户的心
人工智能·ai写作·副业·独孤思维·赚钱
IT·陈寒4 分钟前
Java 并发这块坑真多,线程池又给我上了一课
人工智能·大模型·api·创业·变现·简历优化
Experience-摆渡10 分钟前
谷歌WikiSkill论文精读:模型可以换经验留下来,9B反超27B
人工智能·深度学习
陈天伟教授13 分钟前
DeepSeek Harness 6个使用技巧
人工智能·具身智能
promanz15 分钟前
llamap.cpp 和 llama-index连接
人工智能·llama
Allen_LVyingbo16 分钟前
信息化部门在AI时代的编程转移路径分析(下)
人工智能·log4j·线性回归·健康医疗·数据库开发·时序数据库·数据库架构
EatFan19 分钟前
Agent Harness 为什么突然成了独立品类?从 pydantic-ai-harness v0.30.0 看编码智能体的可复现工程化
人工智能·ai agent·agent harness
Carl_奕然24 分钟前
【智能体】Loop 的四种设计模式之:Agent Loop(2026 最新版)
人工智能·设计模式·语言模型
j7~25 分钟前
【Python】(篇六)《基础语法(函数、列表和元组、字典、文件)》---详解
开发语言·python·文件·函数·字典·编程学习·元组与列表
Geeys29 分钟前
拼多多店铺怎么运营才能有订单?新手低成本出单攻略
大数据·网络·人工智能