智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1817|回复: 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 小时
18#
 楼主| 发表于 2016-4-15 20:23:15 | 只看该作者
lx941011 发表于 2016-4-15 19:32
我们用的大津法取得动态阈值,没有图像不用去噪也可以比较稳定

这个我试过 大津太耗时间了,而且这个也不是动态阈值就能解决的
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1057
威望
534
贡献
329
兑换币
336
注册时间
2015-11-12
在线时间
97 小时
17#
发表于 2016-4-15 19:32:06 | 只看该作者
miaobrother 发表于 2016-4-13 15:58
兄弟,你这话让我有点打鸡血啊,我用了很多方法最好就这样。你的采集套路是啥

我们用的大津法取得动态阈值,没有图像不用去噪也可以比较稳定
回复 支持 反对

使用道具 举报

19

主题

191

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1864
威望
1034
贡献
508
兑换币
649
注册时间
2014-8-20
在线时间
161 小时
毕业学校
河南理工大学
16#
发表于 2016-4-14 13:30:47 | 只看该作者
找边界一般都能找到,关键是算中线的方法,这个就很多种了。
回复 支持 反对

使用道具 举报

6

主题

104

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6120
QQ
威望
3010
贡献
1930
兑换币
2004
注册时间
2014-11-12
在线时间
590 小时
15#
发表于 2016-4-14 11:10:56 | 只看该作者
跟第八届一个国赛队伍的寻线差不多
回复 支持 反对

使用道具 举报

20

主题

136

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1634
威望
828
贡献
432
兑换币
509
注册时间
2015-10-20
在线时间
187 小时
14#
 楼主| 发表于 2016-4-13 21:17:57 | 只看该作者

解决了一大半,原来是硬件问题,还好我队友给力,自己画的比买的还好
回复 支持 反对

使用道具 举报

28

主题

2228

帖子

1

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
15817

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章资源大师奖章

QQ
威望
7430
贡献
4213
兑换币
5193
注册时间
2013-12-9
在线时间
2087 小时
13#
发表于 2016-4-13 20:44:09 | 只看该作者
这图像咋这样
回复 支持 反对

使用道具 举报

20

主题

136

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1634
威望
828
贡献
432
兑换币
509
注册时间
2015-10-20
在线时间
187 小时
12#
 楼主| 发表于 2016-4-13 16:31:40 | 只看该作者

我真不明白这个是什么造成的。。真是日了狗了。买的某宝的视频分离板,难道有毒
回复 支持 反对

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

论坛元老奖章优秀会员奖章活跃会员奖章论坛骨干奖章在线王奖章优秀版主奖章资源大师奖章

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
11#
发表于 2016-4-13 16:28:46 | 只看该作者
噪点挺多
回复 支持 反对

使用道具 举报

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-11-6 15:36 , Processed in 0.062858 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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