开始记录每天的学习

就想着自己能向大神们看齐,通过每天写博客来记录自己每段时间内所学习的东西,以此来督促自己学习吧。
…………………………………………………………………………………………………………
这段时间内主要是想着把之前比赛的无人机巡线在没有学长的帮忙下自主完成。之前采用的方案为:用TK1来处理由摄像头捕获到的视频信息,通过颜色检测和二值化和一系列滤波从背景中提取出飞机所需要识别路径。然后通过串口发送信号给stm32板子。接收到TK1发送到的信息后,模拟遥控器信号给飞控程序。从而达到无人机巡线的目的。但是能力有限,自己写的识别算法不是很稳定,在不同的光线环境下容易受到干扰,识别的效果不是很好。所以后来采用电赛小伙伴们使用过的openmv。之前已经大概了解过了openmv 的开发环境,从今天开始记录学习。(因为是学到一半感觉自己的学习效率很低才想到写博客来督促自己的,就不从头来记录了。)
…………………………………………………………………………………………………………

17 09 11学习日记

从寻找小球的例程里面引出的find_blobs函数。find_blobs的内容为
image.find_blobs(thresholds, roi=Auto, x_stride=2, y_stride=1, invert=False, area_threshold=10, pixels_threshold=10, merge=False, margin=0, threshold_cb=None, merge_cb=None)
函数实现效果的重点还是对于想要提取出来的颜色的阈值选定。在硬件提供的IDE中有方便修改阈值的工具。

find_blobs对象返回的是多个blob的列表。(注意区分blobs和blob,这只是一个名字,用来区分多个色块,和一个色块)。 列表类似与C语言的数组,一个blobs列表里包含很多blob对象,blobs对象就是色块,每个blobs对象包含一个色块的信息。

blob有多个方法:

blob.rect() 返回这个色块的外框——矩形元组(x, y, w, h),可以直接在image.draw_rectangle中使用。

blob.x() 返回色块的外框的x坐标(int),也可以通过blob[0]来获取。

blob.y() 返回色块的外框的y坐标(int),也可以通过blob[1]取。

blob.w() 返回色块的外框的宽度w(int),也可以通过blob[2]来获取。

blob.h() 返回色块的外框的高度h(int),也可以通过blob[3]来获取。

blob.pixels() 返回色块的像素数量(int),也可以通过blob[4]来获取。

blob.cx() 返回色块的外框的中心x坐标(int),也可以通过blob[5]来获取。

blob.cy() 返回色块的外框的中心y坐标(int),也可以通过blob[6]来获取。

blob.rotation() 返回色块的旋转角度(单位为弧度)(float)。如果色块类似一个铅笔,那么这个值为0~180°。如果色块是一个圆,那么这个值是无用的。如果色块完全没有对称性,那么你会得到0~360°,也可以通过blob[7]来获取。

bblob.code() 返回一个16bit数字,每一个bit会对应每一个阈值。

如果这个色块是红色,那么它的code就是0001,如果是蓝色,那么它的code就是0010。注意:一个blob可能是合并的,如果是红色和蓝色的blob,那么这个blob就是0011。这个功能可以用于查找颜色代码。也可以通过blob[8]来获取。

你可能感兴趣的:(学习日记)