“我们在讨论问题,陈星你怎么能当堂开这种下三滥的玩笑。”王哲当即发难。
“这不是下三滥的玩笑,听不懂是你自己的问题。”这是陈星第一次当面回怼王哲。他不打算再留情面了。
“王哲同学,你坐下。”王老师打了圆场,“陈星不是在开玩笑,他的比喻很好。”
可看王哲的表情,显然他还是没有听懂陈星话里的意思。
王老师为了不激化矛盾,也就不再让大家继续回答,转而自己亲自解释。
“刚刚王哲同学非常好,”王老师先安抚了王哲,“他已经想到了要考虑误差。”
“可是呢,现实中除了误差以外,还有种可能,那就是‘掺杂’。你们设想下,如果一片绿色的地面上真的有几个红色的小区域。哪怕真的是因为质量问题导致的,那你们能在竞赛场上指责主办方吗。”
“再者,如果有其它的队伍解决了这个问题呢,如果他们的小车没有受到干扰呢。大片的杂色区域肯定是有问题的,可是小块状的杂色区域是合理的。”
“这就好比陈星同学刚刚的比喻:米缸里掺杂了老鼠屎。由于老鼠屎和米粒根本不存在误差,根本就是两个不同的东西,所以靠误差计算是无法排除的。我们只能采取过滤,就是把老鼠屎挑出来。”
“这下大家明白了吧。”
众人这才恍然大悟。
“当然啊,王哲同学说的误差计算,肯定也是要用到的。需要结合误差与剔除计算,这才是图像处理要被单独拿出来讲的原因所在。”
话是这么说,可显然陈星的考虑更近一层,只是大家心照不宣。
随后王老师继续讲述具体的处理方法。
“为了剔除杂色。我们可以采用邻近区域计算。。。”
由于众人感受到王哲和陈星间的火药味,王老师也就不打算再让大家发散思维,而是选择了自己讲完全程。不然他还是很想让陈星来讲的。这样做的初衷本就是为了让王哲他们见识到自己的差距。可没想到差距带来了矛盾。
“邻近区域计算。就是在小车检测到一个跳变极大的颜色数值时,以当前坐标为基点,小车绕行一小圈,检测一下基点周围区域的颜色。然后计算各类颜色的比例,直接选取比例最大的那个颜色即可。”
“这个概念呢,类似于数字图像处理中的‘模糊’概念。其实就是让一个区域内的像素点全部来投票,谁声音大就听谁的。”
“当然,在投票之前,肯定也要先用到误差计算来对所有像素点的颜色做归类。就是先把差不多的颜色归纳为一类。这个就类似于提前先选举产生一位代表。”
“否则的话,由于颜色差异的客官存在,就会造成人人都来参加选举,那就得乱成一锅粥。不但逻辑上不合理,对计算资源也是极大的浪费。”
“逻辑运算完成后呢,自然就是得出控制逻辑反馈,然后控制小车继续前行。”
“道理不难吧,我们来讲下代码细节。”
王老师没有再让陈星发言,于是接下来的可成都成了他的自问自答独角戏。
“你们知道摄像头为什么采用的是串口。为什么不用I2C。I2C和串口有什么区别知道吗?”
“什么是全双工,什么是半双工?”
“波特率是什么。为什么串口有波特率,为什么I2C没有波特率。为什么I2C会有时钟线。”
“设计者们为什么要发明出同步和异步通信机制?”
为什么,为什么,一堆的为什么无人回答。后来王老师也就不问了,干脆直接讲代码怎么写了。
于是就出现了让陈星哭笑不得的一幕--高考式写代码。那帮人在不理解代码底层逻辑,以及硬件原理的情况下,在对着代码做笔记。
下课后,陈星特地跑去和王老师打了个招呼。“老师,我走了。”
王老师微微摇头苦笑,对着陈星摆了摆手,什么也没说。
陈星是被王老师破例免费拉进来的,其它人则都是收费的。王老师也不好让免费的陈星过于出风头,可那帮付费的又实在带不动。。。