OpenCV图像处理技术(Python)——凸包
发布日期:2021-06-29 04:43:48 浏览次数:4 分类:技术文章

本文共 1306 字,大约阅读时间需要 4 分钟。

©FuXianjun

凸包就是完全包含原有轮廓,并且仅由轮廓上的点所构成的多边形。


一、凸包绘制

  1. 获取凸包
cv2.convexHull( points[, clockwise[, returnPoints]] )points: 轮廓;clockwise:布尔型值;returnPoints:布尔型值。
  1. 通过代码将下列图片进行凸包绘制
    在这里插入图片描述
import cv2# 读取图片并转至灰度模式img = cv2.imread('contours2.png', 1)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 二值化ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)# 图片轮廓contours, hierarchy = cv2.findContours(binary,cv2.RETR_LIST,cv2.CHAIN_APPROX_NONE)cnt = contours[0]# 寻找凸包并绘制凸包(轮廓)hull = cv2.convexHull(cnt)cv2.polylines(img,[hull],True,(255,0,0),2)# 显示图片cv2.imshow('line', img)cv2.waitKey()cv2.destroyAllWindows()

运行结果如下:

在这里插入图片描述

二、凸包检测

  1. 将下列图片进行凸包检测:
    在这里插入图片描述
    完整代码如下:
import cv2# 读取图片并转至灰度模式img = cv2.imread('hand.png', 1)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 二值化ret, binary = cv2.threshold(gray, 60, 255, cv2.THRESH_BINARY)# 图片轮廓contours, hierarchy = cv2.findContours(binary,cv2.RETR_LIST,cv2.CHAIN_APPROX_NONE)n=len(contours)       #轮廓个数contoursImg=[]x=0 #初始化要绘制的轮廓索引for i in range(n):    area = cv2.contourArea(contours[i])    if area>10000:            print(f"轮廓{i}的面积:\n{area}")        x=icnt = contours[x]cv2.imshow("binary",binary)#寻找凸包并绘制凸包(轮廓)hull = cv2.convexHull(cnt)cv2.polylines(img,[hull],True,(0,255,0),2)cv2.drawContours(img,contours,x,(0,0,255), 3)# 显示图片cv2.imshow('line', img)cv2.waitKey(0)cv2.destroyAllWindows()

运行结果为:

在这里插入图片描述

转载地址:https://blog.csdn.net/zhanghao139/article/details/117599886 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android Activity各种情况下的生命周期分析总结
下一篇:OpenCV图像处理技术(Python)——几何变换

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月23日 11时06分07秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

云计算领域的安全威胁如何应对? 2019-04-29
你了解三证合一的数据保护官(DPO)吗? 2019-04-29
小白入门网络安全,需要学习哪些内容? 2019-04-29
如何找回丢失的比特币 2019-04-29
日本交易所Zaif因黑客攻击损失近6000万美元 2019-04-29
以太坊智能合约如何运作? 2019-04-29
赛迪全球公链指数第5期名单:EOS、ETH排名不变 比特股首进前3 2019-04-29
能依靠0.21个比特币生存21天吗 2019-04-29
比特币核心发现网络漏洞CVE-2018-17144 社区敦促所有节点尽快升级补丁 2019-04-29
泰达币对比特币价格的影响不具有统计意义 2019-04-29
Atitit nlp自然语言处理类库(java python nodejs c#net) 目录 1.1. Python snownlp 1 1.2. NLP.js一个nodejs/javascri 2019-04-29
Atitit nlp用到的技术与功能自然语言处理 v3 t99.docx Atitit nlp用到的技术与常见类库 目录 1. 常用的技术 1 1.1. 语言处理基础技术 分词 相似度等 1 1.2 2019-04-29
Atitit 2000drmmr v2 t05.docx Atitit 2000drmmr v1 t99 2000.1.26 hs,yweywe jla n dashw ner kl .na ni 2019-04-29
常见方案 目录 1. 发现目前 WEB 上主流的视频直播方案有 HLS 和 RTMP, 1 2. 实现直播的方法有很多,但是常用的,就这几个。 3个直播协议:rtmp、rtsp、hls。 和三个端: 2019-04-29
Atitit 直播问题总结ffmpeg 目录 1.1. 屏幕太大,可以使用-s调整分辨率 1 1.2. Full size 1 1.3. 流畅度调整 1 2. 1 2.1. 没有录音 1 2.2. 2019-04-29
paip.索引优化---sql distict—order by 法 2019-04-29
paip.输入法编程---带ord gudin去重复- 2019-04-29
paip.输入法编程---增加码表类型 2019-04-29
paip.cpu占用高解决方案---ThreadMast 跟Process Lasso的使用 2019-04-29
paip.提升性能--- mysql 建立索引 删除索引 很慢的解决. 2019-04-29