ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

robomaster视觉入门-寻找装甲板上的灯条

2021-11-28 11:58:15  阅读:268  来源: 互联网

标签:robomaster cv2 灯条 板上 print 轮廓 rect contours


robomaster视觉入门-寻找装甲板上的灯条

上一节讲了如何对摄像头捕捉的每一帧图片进行处理,得到二值化后形状适合的灯条,但总会留下一些无法避免的轮廓干扰,这里将详细介绍如何在众多轮廓中筛选出我们需要寻找的灯条。

一.调用findContours查找函数轮廓

下面使用的函数如findContours、drawContours、minAreaRect、contourArea用法详见此处

import cv2
import numpy as np

img = cv2.imread('xxx.jpg')   #此处用本地图片替代摄像头捕捉的照片
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)		#findContours只能检测二值化后的图片

contours,Hierarchy = cv2.findContours(binary,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)
print (type(contours))  
print (type(contours[0])) 

>>> <class 'list'>				# 第一个返回值类型为list
	<class 'numpy.ndarray'>		# list 的中的每个元素是numpy中的ndarray

其中,第一个参数返回一个list,list中每个元素都是图像中的一个轮廓,用numpy中的ndarray(数组)表示;

第二个参数可反映各轮廓之间的的轮廓建立等级关系,一般用于大风车装甲板识别,这里基本用不上。

二.遍历所有轮廓

变量与for循环结合遍历所有轮廓,再将所有识别到的轮廓在原图中绘出,可以看见,除了我们需要寻找的灯条以外,还含有其他轮廓,为避免其他轮廓干扰,我们使用minAreaRect函数和contourArea函数得到所有轮廓最小外接矩形的一系列信息,并通过其他最小外接矩形的几何性质,筛选出装甲板上的灯条。

for cnt in range(contours[cnt]):  
    cv2.drawContours(frame, contours[cnt],-1,(255,0,0),3)           #画出灯条轮廓

在这里插入图片描述

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

  • 使用minAreaRect函数得到最小外接矩形的中心坐标、长、宽、旋转角度

    rect = cv2.minAreaRect(cnt)
    
    print("中心坐标:", rect[0])
    print("宽度:", rect[1][0])
    print("长度:", rect[1][1])
    print("旋转角度:", rect[2])
        
    >>> 中心坐标: ( x , y )
    	宽度: width
    	长度: heith
    	旋转角度: θ
    
    
  • 使用contourArea函数得到最小外接矩形的面积

area = cv2.contourArea(contours[cnt])

print("面积:", rect[0])

>>> 面积:area

接着,通过对轮廓面积大小、长宽比等一系列几何性质,筛选出装甲板上的灯条,具体算法出处不做赘述。

标签:robomaster,cv2,灯条,板上,print,轮廓,rect,contours
来源: https://blog.csdn.net/langanyi_/article/details/121589143

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有