智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1773|回复: 17
打印 上一主题 下一主题

来点鄙人的小想法 用图说话吧,顺便分享一丢丢代码

[复制链接]

20

主题

136

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1634
威望
828
贡献
432
兑换币
509
注册时间
2015-10-20
在线时间
187 小时
跳转到指定楼层
1#
发表于 2016-4-13 11:14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就是一个普通弯道边线,自己的寻线思想贴上来吧,大神们有啥思路的呱唧呱唧!

//为跟线搜索算法参数赋初值
  L_last_memory=Left[4];
  R_last_memory=Right[4];
////////////////////////////前五行计算图像中线/////////////////////////////
        }                                           //底部五行全局扫描结束
   }
       else  if(line>=6)                                  // (i>=5)
       {   
     line=line-1;
////////////////////////////左边///////////////////////////////   
     if(L_last_memory>IMG_DIFF)
      Scan_Start=L_last_memory-IMG_DIFF;
    else
   {
        Scan_Start=0;
   }
     if(L_last_memory<(SONYCCD_W-IMG_DIFF))
      Scan_End=L_last_memory+IMG_DIFF;//取上一行黑线偏右IMG_DIFF列坐标
     else
   {
     Scan_End=SONYCCD_W-1;
    if(Line_Flag[line-1]&LEFT_LOST_W)  Scan_Start=SONYCCD_W-4;
   }
  if(Copy_Buffer[line][Scan_Start]==1)
     {
    j=Scan_Start;
     }
  else
  {
     for(j=Scan_Start;j<Scan_End;j++)
   {
    if(Copy_Buffer[line][j]==1)
    {
      flag=0;
       for(i=0;i<4;i++)
       {
       if((j+i)>=SONYCCD_W)     
      {      
       flag=3;
       break;
      }
      else  if(Copy_Buffer[line][j+i]==1)
         flag++;
       else if(Copy_Buffer[line][j+i]==0)
      {
       for(b=0;b<4;b++)
       {
         if(Copy_Buffer[line][j+i+b]==0)  
          flag++;
        if(Copy_Buffer[line][j+i+b]==1){ flag++;  break;}
       }
      }
       }
     if(flag>1)
     {
      Left[line]=j;
      Enable_lianxu=1;
      L_last_memory=j;
      break;
     }  
    }
   }
  }
  if(j==Scan_Start)
  {
    Line_Flag[line] |= LEFT_LOST_B;
                                                  //不允许连续两次  接近平行
for(b=0;b<15;b++)
   {
    if((Scan_Start-b)<=0)
    {
     zuo_Unvalue_flag=line;
     break;
    }
   else if(Copy_Buffer[line][Scan_Start-b]==0)
    {
     flag=0;
     for(i=0;i<6;i++)  
     {
      if((Scan_Start-b-i)<=0)
       ;      
      else if(Copy_Buffer[line][Scan_Start-b-i]==0) flag++;
     }
     if(flag>=3)
     {
      Left[line]=Scan_Start-b;
      L_last_memory=Scan_Start-b;
      break;
     }
    }
   }
   if( Scan_Start==0)
   {
    Left[line]=0;
   
    zuo_Unvalue_flag=line;
   }
else if((b==15)&&(Line_Flag[line-1]== LEFT_LOST_W)&&(Copy_Buffer[line+1][SONYCCD_W-1]==0))
{
  Left[line]=SONYCCD_W-1;
   left_lost_flag=1;
     L_lost_count++;
}
else if((b==15)&&(zuo_Unvalue_flag==0))     
  {
    if((Scan_Start-20)<=0) start_again=0;
       else  start_again=Scan_Start-20;
    for(b=start_again;b<Scan_Start;b++)
   {
    if(Copy_Buffer[line][b]==1)
    {   
        flag=0;
       for(i=0;i<4;i++)
       {
     if((b+i)>=SONYCCD_W)  
     {
       Left[line]=SONYCCD_W-1;
         left_lost_flag=1;
           L_lost_count++;
      break;
     }
      if(Copy_Buffer[line][b+i]==1)
        flag++;
       }
     if(flag>=2)  
     {
      Left[line]=b;
      L_last_memory=b;
      break;
     }            
    }
    }
   }
     L_last_memory=Left[line];
   
  if(((Left[line]-Left[line-1])>Jungle)||((Left[line]-Left[line-1])<-Jungle))  
    {  
   zuo_Unvalue_flag=line;
  }
  else if((Left[line]-Left[line-1])>0)
  {
   zuo_Unvalue_flag=line;
  }
  }
  else if(j==Scan_End)//未找到黑线
  {
    Line_Flag[line] |= LEFT_LOST_W;
  if(( Line_Flag[line-1]&0x40)&(Enable_lianxu==1))   zuo_Unvalue_flag=line;
  for(;j<SONYCCD_W-1;j++)
     {
  if(((Copy_Buffer[line][j])==1)&&((Copy_Buffer[line][j-1])==0)&&((Copy_Buffer[line][j-2])==0))  
      break;
     }
  if(j==(SONYCCD_W-1))
  {
   if(Copy_Buffer[line+1][SONYCCD_W-1]==0)
   {
    flag=0;
    for(b=SONYCCD_W-1;b>SONYCCD_W-5;b--)
    {
     if(Copy_Buffer[line+1][b]==0) flag++;
     else  break;
    }
   }
      Left[line]=SONYCCD_W-1;
    left_lost_flag=1;
      L_lost_count++;
       Line_Flag[line] |= 0x40U;
  }
     L_last_memory=Left[line];
if(flag!=4)
   if(((Left[line]-Left[line-1])>Jungle)||((Left[line]-Left[line-1])<-Jungle))
{
  zuo_Unvalue_flag=line;
}
  }
  
if(zuo_Unvalue_flag!=0)
{
  WEIZHI_NUM++;
  if(WEIZHI_NUM==1) Zuo_start=zuo_Unvalue_flag;
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

20

主题

136

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1634
威望
828
贡献
432
兑换币
509
注册时间
2015-10-20
在线时间
187 小时
2#
 楼主| 发表于 2016-4-13 11:15:41 | 只看该作者
那根横着的黑线是 无效截止行哈
回复 支持 反对

使用道具 举报

20

主题

136

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1634
威望
828
贡献
432
兑换币
509
注册时间
2015-10-20
在线时间
187 小时
3#
 楼主| 发表于 2016-4-13 11:16:07 | 只看该作者
还是那句话 曲线拟合 真的想搞一搞,感觉很不错的样子 大家觉得呢
回复 支持 反对

使用道具 举报

20

主题

136

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1634
威望
828
贡献
432
兑换币
509
注册时间
2015-10-20
在线时间
187 小时
4#
 楼主| 发表于 2016-4-13 11:16:46 | 只看该作者
只有左边的,没有右边的  反正一个套路
回复 支持 反对

使用道具 举报

20

主题

136

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1634
威望
828
贡献
432
兑换币
509
注册时间
2015-10-20
在线时间
187 小时
5#
 楼主| 发表于 2016-4-13 11:18:36 | 只看该作者
顺便问问 有同用索尼CCD700线的兄弟没?  这图像质量真的是。。。。要是有数字摄像头那么黑白分明就好了哇
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1057
威望
534
贡献
329
兑换币
336
注册时间
2015-11-12
在线时间
97 小时
6#
发表于 2016-4-13 11:45:08 | 只看该作者
我们用的Sony ccd,图像还好,没你这么多噪点
回复 支持 反对

使用道具 举报

1

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
威望
179
贡献
104
兑换币
116
注册时间
2015-11-18
在线时间
36 小时
毕业学校
江苏理工学院
7#
发表于 2016-4-13 13:22:37 | 只看该作者
正打算用  给点建议吧  图像的获取和存储怎么做  在行中断里面用定时器等时间间隔读取存入数组还是用dma?疑惑较多  希望兄弟能指点一二  能加一下qq好友是最好了
回复 支持 反对

使用道具 举报

20

主题

136

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1634
威望
828
贡献
432
兑换币
509
注册时间
2015-10-20
在线时间
187 小时
8#
 楼主| 发表于 2016-4-13 15:57:20 | 只看该作者
江理工吴灏 发表于 2016-4-13 13:22
正打算用  给点建议吧  图像的获取和存储怎么做  在行中断里面用定时器等时间间隔读取存入数组还是用dma?疑 ...



我那图像差的一啤,没什么可教你的
回复 支持 反对

使用道具 举报

20

主题

136

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1634
威望
828
贡献
432
兑换币
509
注册时间
2015-10-20
在线时间
187 小时
9#
 楼主| 发表于 2016-4-13 15:58:06 | 只看该作者
lx941011 发表于 2016-4-13 11:45
我们用的Sony ccd,图像还好,没你这么多噪点

兄弟,你这话让我有点打鸡血啊,我用了很多方法最好就这样。你的采集套路是啥
回复 支持 反对

使用道具 举报

1

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
威望
179
贡献
104
兑换币
116
注册时间
2015-11-18
在线时间
36 小时
毕业学校
江苏理工学院
10#
发表于 2016-4-13 16:04:25 | 只看该作者
lx941011 发表于 2016-4-13 11:45
我们用的Sony ccd,图像还好,没你这么多噪点

同求指点   能否加qq好友
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-24 11:30 , Processed in 0.096074 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表