# 2. 能量机关识别算法
|  |
| :------------------------: |
| *能量机关* |
1. 预处理。根据能量机关颜色不同进行不同的通道相减,得到能量机关的大体轮廓,然后进行二值化处理增强能量机关的轮廓和去除无用的噪点,根据能量机关灯条的特征,使用膨胀加闭运算进一步减少不必要的轮廓,然后提取轮廓。
2. 提取能量机关中心R标。由于中心R标经预处理后接近于正方形,所以根据其轮廓面积、生成其最小外接矩形得到长宽比接近于1,可以得到中心点R的位置信息。
3. 提取未击打扇叶。由于未击打扇叶的最外层轮廓大体为一个锤子,而轮廓面积与其生成的最小外接矩形面积相差近两倍,所以利用这一特有的比例关系,可以直接拿到未击打的扇叶。
4. 提取装甲板。由于装甲板与能量机关中心R标的面积有严格的比例关系,且其长宽比也为定值,所以可轻松提取到所有装甲板:包括待击打和已击打的装甲板。
5. 匹配得到未击打扇叶上的装甲板,即待击打目标。由于未击打扇叶上的装甲板与其他击打过的装甲板有明显的位置特征差异:目标装甲板到未击打扇叶(锤子)中心的距离小于其他任何击打过的装甲板到锤子的中心的距离。因此可以设定一个距离阈值,来利用这一阈值条件,就可以判断出每个装甲板是否击打过。
6. 装甲板移动轨迹预测。