智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2072|回复: 7
打印 上一主题 下一主题

车子能跑双线,求助找单线?前两行提取代码贴出,问能不能兼容单双线?

[复制链接]

8

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1116
QQ
威望
541
贡献
319
兑换币
341
注册时间
2014-9-29
在线时间
128 小时
毕业学校
湖北师范学院
跳转到指定楼层
1#
发表于 2015-4-13 18:40:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5贡献
//计算前2行的左右边缘
    for(i=DATALINE-1;i>DATALINE-3;i--)
  {
   // for(j=(DATACOUNT/2-40);j<(DATACOUNT-1);j++)//计算前2行右边界  起始点靠左一点        011(白黑黑)
       for(j=(DATACOUNT/2-10);j<DATACOUNT-1;j++)
    {
       if(ImageBuf2[i][j-1]==0&&ImageBuf2[i][j]==1&&ImageBuf2[i][j+1]==1&&blackright[i]==DATACOUNT)//省掉break,
       {
         blackright[i]=j;
         break; //这一行是4月1号晚添加
       }
    }
    for(m=(DATACOUNT/2+10);m>0;m--) //计算前2行左边界  起始点靠右一点    110(黑黑白)
    {
      if(ImageBuf2[i][m-1]==1&&ImageBuf2[i][m]==1&&ImageBuf2[i][m+1]==0&&blackleft[i]==0)//省掉break,
      {
        blackleft[i]=m;
        break; //这一行是4月1号晚添加
      }
    }
   
   
    if((blackright[i]-blackleft[i])>(bxiankuan[i]*2-2)||(blackright[i]-blackleft[i])<(bxiankuan[i]*2-20))
   {
        for(i=DATALINE-1;i>DATALINE-3;i--)
    {
          for(j=0;j<DATACOUNT;j++)
              {
               if(ImageBuf2[i][j]==1)//如果是黑点
                  {
                       row_black=j;//记录该行第一个黑点的位置
                      for(j=j+1;j<DATACOUNT;j++)//继续对下一列进行判断  
                          {
                          if(ImageBuf2[i][j]==0)//如果是白点
                                {
                                      row_white=j;//记录该行连续黑点后的第一个白点的位置
                                      len=row_white-row_black;//黑线宽度
                                      blackdot=row_black+((len+1)>>1);//计算第i行的中心线位置
                                      if(len>4 && len<11) //前两行黑线宽度为6到10
                                        {
                                          blackright[i]=row_white;
                                          blackleft[i]=row_black;
                                        //  center[i]=blackdot;
                                        }
                                      if(len>30)
                                        {
                                          if(i>0)
                                         // center[i]=center[i+1];  
                                          blackright[i]=blackright[i+1];
                                          blackleft[i]=blackleft[i+1];
                                                  
                                        }
                                      break;//跳出上一个for循环,对下一行进行黑线提取
                                }
                          }
                  }
              }
        }
   }
这是提取前两行黑线的代码,请各位大神指教指教,这个能不能兼容单双线赛道?我的车子可以跑双线,但是有单线的时候会把中心引导线当成左边黑线,车子在右边赛道走,这个怎么解决?

回复

使用道具 举报

0

主题

8

帖子

0

精华

注册会员

Rank: 2

积分
165
威望
77
贡献
54
兑换币
49
注册时间
2014-3-7
在线时间
17 小时
毕业学校
长春理工大学
2#
发表于 2015-5-3 19:11:25 | 只看该作者
我也遇到同样的问题
回复

使用道具 举报

4

主题

372

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1073
QQ
威望
543
贡献
360
兑换币
354
注册时间
2014-7-22
在线时间
85 小时
3#
发表于 2015-5-3 20:22:06 | 只看该作者
同无思路
回复

使用道具 举报

6

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
584
威望
281
贡献
165
兑换币
175
注册时间
2014-12-30
在线时间
69 小时
毕业学校
成都大学
4#
发表于 2015-5-6 18:46:38 | 只看该作者
双线和单线的区别应该就是跳变吧,左右两个的黑线同时有一个跳变
回复

使用道具 举报

5

主题

21

帖子

0

精华

注册会员

Rank: 2

积分
182
威望
91
贡献
63
兑换币
51
注册时间
2015-4-8
在线时间
14 小时
毕业学校
武汉理工
5#
发表于 2015-5-17 10:13:03 | 只看该作者
朋友,你解决了么?
回复

使用道具 举报

19

主题

411

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2926
威望
1594
贡献
68
兑换币
1062
注册时间
2014-6-4
在线时间
632 小时
6#
发表于 2015-5-17 13:26:33 | 只看该作者
同问
回复

使用道具 举报

0

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
499
QQ
威望
261
贡献
160
兑换币
173
注册时间
2015-3-14
在线时间
39 小时
毕业学校
中山大学
7#
发表于 2015-5-20 19:58:59 | 只看该作者
同问:)
回复

使用道具 举报

8

主题

154

帖子

0

精华

高级会员

Rank: 4

积分
609
QQ
威望
315
贡献
190
兑换币
204
注册时间
2014-10-10
在线时间
52 小时
8#
发表于 2015-5-21 20:35:39 | 只看该作者

搜索车前5行,从左到右,从右到左同时搜索,寻找白到黑的跳变,然后用数组统计黑线边缘,求中时用两个数组相加除2,就可以获得中线,单双都好使
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 11:20 , Processed in 0.059881 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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