合工大苍穹战队视觉组培训Day4——传统视觉,轮廓识别

目录

学习目标

学习内容

学习时间

学习产出

一、findContours函数学习笔记

二、寻找装甲板上的灯条

1.调用findContours查找函数轮廓,里面的用的函数如findContours、drawContours、minAreaRect、contourArea都是在csdn上查的,这里不做赘述。

2.对所有轮廓遍历

3.筛选出装甲板上的灯条

三、找到中心位置

学习心得


学习目标

  • 轮廓识别

学习内容

  1. findContours函数
  2. 寻找灯条
  3. 找到中心位置

学习时间

  • 2022年7月21日

学习产出

一、findContours函数学习笔记

轮廓提取使用findContours函数,其参数如下:

void cv::findContours	(	InputArray 
image,
		OutputArrayOfArrays 
contours,
		OutputArray 
hierarchy,
		int 	mode,
		int 	method,
		Point 
offset = Point() 

	)		

void cv::findContours	(	InputArray 
image,
		OutputArrayOfArrays 
contours,
		int 	mode,
		int 	method,
		Point 
offset = Point() 

	)	
	

先是对函数声明的理解和战队培训资料的解析:

image:输入图像。8-bit的单通道二值图像,非零的像素都会被当作1。

contours:检测到的轮廓。是一个向量,向量的每个元素都是一个轮廓。因此,这个向量的每个元素仍是一个向量。即vector<vector<Point> > contours

hierarchy:各个轮廓的继承关系。hierarchy也是一个向量,长度和contours相等,每个元素和contours的元素对应。hierarchy的每个元素是一个包含四个整型数的向量。即:            vector<Vec4i> hierarchy; //Vec4i is a vector contains four number of int

int型的mode,定义轮廓的检索模式:

取值一:CV_RETR_EXTERNAL只检测最外围轮廓,包含在外围轮廓内的内围轮廓被忽略;

取值二:CV_RETR_LIST   检测所有的轮廓,包括内围、外围轮廓,但是检测到的轮廓不建立等级关系;

取值三:CV_RETR_CCOMP  检测所有的轮廓,但所有轮廓只建立两个等级关系,外围为顶层,若外围内的内围轮廓还包含了其他的轮廓信息,则内围内的所有轮廓均归属于顶层;

取值四:CV_RETR_TREE  检测所有轮廓,所有轮廓建立一个等级树结构。外层轮廓包含内层轮廓,内层轮廓还可以继续包含内嵌轮廓。

第五个参数:int型的method,定义轮廓的近似方法:

取值一:CV_CHAIN_APPROX_NONE 保存物体边界上所有连续的轮廓点到contours向量内

取值二:CV_CHAIN_APPROX_SIMPLE 仅保存轮廓的拐点信息,把所有轮廓拐点处的点保存入contours向量内,拐点与拐点之间直线段上的信息点不予保留

其中

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

工大电科小趴菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值