接下来就是拟合轮廓。将识别到的蓝色部分也就是二值图像的白色部分用opencv 的内置找轮廓函数将蓝色部分的轮廓提取出来,这里将较小的轮廓去除(一般较小的轮廓为噪点,不用处理),然后再用最小矩形或者最小椭圆(使用时要注意这两者的区别)将蓝色轮廓部分包围起来,这样你就能够得到包围矩形的旋转角和长度以及宽度(这里要求对最小包围矩形和最小包围椭圆深入理解),通过长宽之间的比值和差值可以判断该蓝色物体受不是灯柱,因为灯柱是长条形,有明显的长宽比和长宽差值以及一些其他的形状信息,然后就是将认为是灯柱的部分进行两两对比,通过他们之间的相对角度和长宽比以及其他性质来判断这两个灯柱是不是同一个装甲的两体灯柱,找到这样的两条灯柱就用他们的信息拟合出装甲,完成识别的任务。这其中还运用到很多形态学的操作,程序里都有体现,这里不再细说。
|