opencv:图像轮廓检测 cv2(1)

| method | 描述 |
| cv2.CHAIN_APPROX_NONE | 获取每个轮廓的每个像素,相邻的两个点的像素位置差不超过1 |
| cv2.CHAIN_APPROX_SIMPLE | 压缩水平方向,垂直方向,对角线方向的元素,值保留该方向的重点坐标,如果一个矩形轮廓只需4个点来保存轮廓信息  |
| cv2.CHAIN_APPROX_TC89_L1 | 使用Teh-Chini chain近似算法 |
| cv2.CHAIN_APPROX_TC89_KCOS | 使用Teh-Chini chain近似算法 |

1.1 contour返回值

cv2.findContours()函数首先返回一个list,list中每个元素都是图像中的一个轮廓信息,list中每个元素(轮廓信息)类型为ndarray。len(contours[1]) 表示第一个轮廓储存的元素个数,即该轮廓中储存的点的个数。

1.2 hierarchy返回值

该函数还可返回一个可选的hiararchy结果,这是一个ndarray,其中的元素个数和轮廓个数相同,每个轮廓contours[i]对应4个hierarchy元素hierarchy[i][0] ~hierarchy[i][3],分别表示后一个轮廓、前一个轮廓、父轮廓、内嵌轮廓的索引编号,如果没有对应项,则该值为-1。

  • 第一个数:表示同一级轮廓的下个轮廓的编号,如果这一级轮廓没有下一个轮廓,一般是这一级轮廓的最后一个的时候,则为-1。
  • 第二个数:表示同一级轮廓的上个轮廓的编号,如果这一级轮廓没有上一个轮廓,一般是这一级轮廓的第一个的时候,则为-1。
  • 第三个数:表示该轮廓包含的下一级轮廓的第一个的编号,假如没有,则为-1。
  • 第四个数: 表示该轮廓的上一级轮廓的编号,假如没有上一级,则为-1。
1.3 栗子

img:

  • 以一个参数去接收返回值,则该参数会接收三个返回值
import cv2

img = cv2.imread('../../DAVIS-2016/Annotations/1080p/flamingo/00007.png', 0)
img = cv2.resize(img, (16, 16))

returns = cv2.findContours(img,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值