方块分割过程:

摄像头对电脑屏幕捕获图像之后进行一些必要的图像预处理(滤波、均衡化等),然后判断是否是第一次扫雷。如果是第一次扫雷则要进行边缘检测和图像分割等处理,这样做的目的是我们要分离出雷区的每一个方块,用于后面对每个方块类型进行判断。在获取各个方块的坐标之后进行存储操作,之后的处理就可以不再进行方块的分割操作了。下图是通过直接对屏幕进行截图之后在Matlab中对截图进行的边缘检测(sobel)结果。

图2.3  原始图像

图2.3 原始图像

图2.4  灰度图像

图2.4 灰度图像

图2.5  边缘检测结果图

图2.5 边缘检测结果图

图2.6  边缘检测结果局部放大图

图2.6 边缘检测结果局部放大图

从上面的结果图来看效果是可以接受的,在对边缘检测的结果在进行相应的形态学操作之后再进行相应的处理和分析就可以得到各个方块的坐标信息。

决策过程:

决策过程首先是要确定各个方块的类型,我们利用方块分割过程确定的方块坐标信息将每个方块与9(还是10)种方块类型的图像进行对比,通过它们的相似程度来确定该方块的类型。例如2.7图中的最右下角的方块是,我们使用等方块类型与之比较,通过对比最右下角方块与各个确定类型方块的相关系数的大小来判断该未知方块的类型。也可以使用颜色信息等其它方式来判断类型不确定方块的类型。在方块类型确定之后,问题就变得简单了,我们只需要利用已知的信息结合游戏规则来推断哪些方块是地雷。然后用机械手臂控制鼠标完成扫雷游戏。在完成一幅图像的所有操作后继续采集下一幅图像重复以上工作,在每判断出每一个地雷的时候系统都会记录下来,当记录的地雷数达到了游戏的所有地雷数时系统会自动退出。

也许会遇到无法判断的情况,为了避免出现死循环系统将会采取随机的方式处理,这时就得看机器人的运气如何了。