cv2小记——初始轮廓
发布日期:2021-06-30 15:01:37 浏览次数:2 分类:技术文章

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

# coding: utf-8# !/usr/bin/python"""@File       :   OpenCV中的轮廓.py@Author     :   jiaming@Modify Time:   2020/2/4 12:02@Contact    :   https://blog.csdn.net/weixin_39541632@Version    :   1.0@Desciption :   OpenCV 中的轮廓                理解什么是轮廓,学习找轮廓,绘制轮廓                cv2.findContours(), cv2.drawContours()                图像、轮廓、轮廓的层析结构=cv2.findContours(输入图像、轮廓检索模式、轮廓近似方法)                cv2.drawContours(原始图像、轮廓(列表)、索引(-1: 绘制所有轮廓))"""import osimport sysimport numpy as npimport cv2import pprintfrom matplotlib import pyplot as pltrawPath = os.path.abspath(__file__)currentFile = os.path.basename(sys.argv[0])dataPath = rawPath[:rawPath.find(currentFile)] + r'static\\'
"""轮廓可以简单认为成将连续的点连在一起的曲线,具有相同的颜色或者灰度,轮廓在形状分析和物体的检测和识别中很有用。为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测。查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图像,你应该将原始图像存储到其他变量中。在 opencv 中,查找轮廓就像在黑色背景中找白色物体。"""im = cv2.imread(dataPath + 'j.png')imgray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)ret, thresh = cv2.threshold(imgray, 200, 255, cv2.THRESH_BINARY_INV)cv2.imshow('img1', thresh)contours, hierarchy = cv2.findContours(    thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)# 以上设置是较为通用的用法,后面会讲到一些具体的设置参数# 这一步会把thresh变为轮廓图,即与img相同;然而不断试验并没发现thresh发生任何变化# cv2.CHAIN_APPROX_SIMPLE 将轮廓上的冗余点去掉,压缩轮廓# cv2.CHAIN_APPROX_NONE 所有边界点都会被存储# BGRcv2.drawContours(im, contours, -1, (0, 0, 255), 1)# 这一步会把轮廓线画在im中cv2.imshow('img', im)cv2.waitKey(0)print(len(contours))  # 4 个轮廓

在这里插入图片描述

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

上一篇:cv2小记——轮廓特征
下一篇:第三章:类与继承(Ⅰ)

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月09日 06时38分09秒

关于作者

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

推荐文章