17届智能车基础四轮---扫线

智能车专栏目前四篇文章,总收藏或总点赞超过100个继续更新

不思进取,只等开源?

扫线部分思路来源于三江学院 - 识别不别队技术报告

简单来说就是以上一行中线上的那个点为起始点,向两边扫描,直到扫到当前行的边界,如果没扫到就判为丢线,当上一行中线上的那个点超出左或右边界时,停止扫描,直接用上一行的边界去加上一个值(代码通俗易懂)

void ImageGetSide(uint8 imageInput[LCDH][LCDW],int imageOut[LCDH][2],int imageLost[LCDH][2])
{
    int x,y;
    int AuxiliaryLine[LCDH],RoadHalfWidth[LCDH];
    AuxiliaryLine[LCDH-1]=(LCDW-1)/2;
    RoadHalfWidth[LCDH-1]=(LCDW-1)/2;
    imageOut[LCDH-1][1]=LCDW-1;
    imageOut[LCDH-1][0]=0;
    for(y=LCDH-2;y>0;y--)//扫描
    {
        if(AuxiliaryLine[y+1]<1)
        {
            imageOut[y][0]=imageOut[y+1][0]-8;
            imageOut[y][1]=imageOut[y+1][1]-8;
            imageLost[y][0]=1;
            imageLost[y][1]=1;
            if(imageOut[y][1]>1)
            {
                imageInput[y][imageOut[y][1]]=1;
        

你可能感兴趣的:(智能车,c语言)