拐点分为下拐点和上拐点。
1、上拐点
我们可以看到上拐点类似于一个L形状。
这是我们人肉眼俯视图所看到的。
这是我们摄像头看到的十字形状。
而我们放大上拐点的形状
没错是这样一个形状,有人问你怎么知道,你可以证明一下。
怎么证明简单说一下,定义一个数组,从下往上扫描,扫描到黑点把此坐标的纵坐标放到数组里。然后你可以看数组里的值,你就知道这个拐点的形状了。
然后怎么找这个拐点,我们看这个拐点,以横坐标来看这条线上的坐标持续增大,无明显特征点。
以纵坐标来看,此拐点纵坐标最大。即我们根据这个特征点来找拐点。
怎么找,前面我们讲过啦,从下往上找,找到第一个黑点,把此点的纵坐标放到一个数组里,然后,比较这个数组的大小,如果出现减小或增大的,记录此点,立即退出循环(break)。
/************************************************************
【函数名称】portrait_line
【功 能】纵向巡线函数
【参 数】无
【返 回 值】无
【实 例】portrait_line();
【注意事项】无
***********************************************************/
void portrait_line(void)
{
uint8 i,j;
for(i=0;i<Col;i++)
{
for(j=Row-1;j>=0;j--)
{
if(Pixle[j][i]==0||j==0)
{
above_arr[i]=j;
break;
}
}
}
}
纵向巡线方便寻找上拐点。
2、下拐点
下拐点相对简单哈。
我们摄像头从边界数组里来寻找,大家开始处理元素应该都寻过线,然后有左右边线数组。
以左边线数组为例,直接遍历出最大值,即为拐点。