K210板教程8——形状识别
在2020顺德科创节的人工智能比赛中,有一道题是这样的。给出任意一个圆形和矩形,通过编写人工智能程序,计算出他们的面积比。
https://makelogimg.dfrobot.com.cn/Fk6aetuWBEv7jRcubW7MLaj7tQRp?imageView2/2/w/1600
我们就以这个图为例,图中圆形的直径是25MM,矩形是一个边长为25MM的正方形。
我们来看看如何让博派完成该任务。
步骤1
博派识别圆形
K210是可以识别各种形状的,我们首先来看看如何识别圆形。
首先来看看Mind+中关于形状识别的代码块。
主板选定Maxiduino后,要在功能模块中选择机器视觉,才能看到形状识别的代码块。
https://makelogimg.dfrobot.com.cn/FkNWuPCG0vFPV9_0stZuiHIeRxxG?imageView2/2/w/1600
我们可以看到暂时可以识别直线,圆形和矩形。
这里我们主要使用到圆形识别。
代码比较简单,直接上代码。
https://makelogimg.dfrobot.com.cn/FpNGxrRSP-X7pBXLo33QkG2qM6nl?imageView2/2/w/1600
这里圆形识别的参数是系统自行设定的,我们没有更改,来看看效果。
https://makelogimg.dfrobot.com.cn/FpTodtp_GpC98wRSuh4u-86UpFE5?imageView2/2/w/1600
我们发现绘制的圆形和原来的圆形不一致,甚至会有多个圆形出现。
我们将阈值更改一下,经过测试发现设置为3500,效果非常好
https://makelogimg.dfrobot.com.cn/Fjge-h8QZtcNWfaCexxIRoiIvzIP?imageView2/2/w/1600
用Mixly编程,代码基本差不多,话不多说直接上图。
https://makelogimg.dfrobot.com.cn/FkCbq3LvEgznF0cm_kvGrHFS1Npl?imageView2/2/w/1600
这里只讲圆形识别,至于求圆的面积后面再讲。
步骤2识别矩形
识别矩形和识别圆形基本上是一样的,只是将圆形识别代码换成矩形识别代码即可。
但是在实际运行中发现速度较慢,因此我们将摄像头的分辨率调低,从320*240降到160*120
阈值也要进行适当的调整,这里调为8000
代码如下:
https://makelogimg.dfrobot.com.cn/Ft_od6KDIE_5EgpDFYCtmZx0XZz_?imageView2/2/w/1600Mixly代码如下:
https://makelogimg.dfrobot.com.cn/FmCzCoSjB6t8SiVjRVGjoXLb8ZC-?imageView2/2/w/1600步骤3编程计算圆形和矩形的面积比
在这里我们需要知道在屏幕中圆形的半径,可以直接调用代码块
x,y是圆形的中心坐标,r分量就是圆的半径
有了半径我们直接用公式 Π*r*r 即可得到面积
https://makelogimg.dfrobot.com.cn/FrCkOGuIR1S9xjD_O3ZQEZj-uOiZ?imageView2/2/w/1600矩形的长和宽也可以通过调用代码块实现
w分量是矩形的宽度
h分量是矩形的高度
矩形的面积就是 w*h
https://makelogimg.dfrobot.com.cn/FhabxbyMgXQrGWm2-YBCu8_ObCrO?imageView2/2/w/1600根据前面所学,我们就可以将圆形和矩形的面积比通过编程得到
具体代码如下:
https://makelogimg.dfrobot.com.cn/Fuv9VFHZZd87VtcWmPYj7Q75PnbB?imageView2/2/w/1600
我们来看看效果
https://makelogimg.dfrobot.com.cn/FnBN90eGpEeADYpNE_B-xC4EqUw7?imageView2/2/w/1600https://makelogimg.dfrobot.com.cn/Fo3RPCqZV9qPw6H_UIZxw5urZBiI?imageView2/2/w/1600
我们用计算器算,取Π为3.14,得出结果为0.785
博派得出的结果是0.7856488,比我们的结果更精确。
但是要注意的是摄像头一定要固定好,不能有晃动,否则数值会一直变化。
Mixly代码直上图,如下:
https://makelogimg.dfrobot.com.cn/FhZ1XB6EKR9atexwGZs7Run8WCJB?imageView2/2/w/1600
但是Mixly得出的结果与实际结果有点差距
https://makelogimg.dfrobot.com.cn/FoILlQ5Hx1p_xdhEqTFCkJ6kftks?imageView2/2/w/1600
用Mixly得出的结果是0.8055366,虽然很接近,但是还是有差距
看来在这局Mind+更胜一筹。
动手试试吧!
附件
博派圆形识别Mind+.sb3博派矩形识别Mind+.sb3博派圆形矩形面积比.sb3https://makelogimg.dfrobot.com.cn ... 33.198884545235.rar]
有没有源代码?
页:
[1]