智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 17424|回复: 53
打印 上一主题 下一主题

摄像头提取黑线

  [复制链接]

15

主题

209

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2909
威望
1025
贡献
1370
兑换币
50
注册时间
2011-9-26
在线时间
257 小时
跳转到指定楼层
1#
发表于 2012-3-2 22:16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5贡献
关于黑线提取,怎么样从中间开始检测呢?

最佳答案

查看完整内容

简单的很,我的程序就是从中间提取黑白跳变的,只不过是列数多使用一个变量罢了。 void Get_whiteline(void){ //白线提取程序 int i,j1,j2; int br,bl; for(i=0;iimage[j1+3]+yuzhi)) { fall_edge=1; left_edge=j1-br; } } for(j2=60+br;j2>br+3;j2--) //从中间往右边扫描找右边缘 { if((image[j2]>image[j2-2]+yuzhi)&&(image[ ...

1

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
241
威望
188
贡献
35
兑换币
0
注册时间
2011-12-4
在线时间
9 小时
2#
发表于 2012-3-2 22:16:01 | 只看该作者
简单的很,我的程序就是从中间提取黑白跳变的,只不过是列数多使用一个变量罢了。
void Get_whiteline(void){           //白线提取程序
  int i,j1,j2;
  int br,bl;
   
  for(i=0;i<40;i++)
  {
   
    br=120*i;
    bl=120*(i+1);
    for(j1=60+br;j1<bl-3;j1++)         //从中间往左边扫描找左边缘
    {
       if((image[j1]>image[j1+2]+yuzhi)&&(image[j1]>image[j1+3]+yuzhi))
       {
          fall_edge=1;
          left_edge=j1-br;
       }
    }
    for(j2=60+br;j2>br+3;j2--)         //从中间往右边扫描找右边缘
    {
       if((image[j2]>image[j2-2]+yuzhi)&&(image[j2]>image[j2-3]+yuzhi))
       {
          rise_edge=1;
          right_edge=j2-br;
       }
    }
    if(fall_edge==1&&rise_edge==1)              //找到左右边缘
    {
       if((left_edge-right_edge)>(100-2.5*i))      //白线宽度限制
       {
         center_line[i]=(right_edge+left_edge)>>1;        //求中点坐标
         exact=1;
       }
    }
    if(fall_edge==0&&rise_edge==1)               //找到右边缘,没有找到左边缘,左转弯
    {
       center_line[i]=(right_edge+120)>>1;
       exact=1;
    }
    if(fall_edge==1&&rise_edge==0)         //找到左边缘,没有找到右边缘,右转弯
    {
       center_line[i]=(left_edge+(i-10))>>1;
       exact=1;
    }
    if(fall_edge==0&&rise_edge==0)                                //没有找到左右边缘
    {
       exact=0;
       rise_edge=0;fall_edge=0;
       right_edge=0;left_edge=0;
    }
    if(exact==0&&i>10) center_line[i]=0;
  
    exact=0;                        //找下一行白线前清除所有信号
    rise_edge=0;fall_edge=0;
    left_edge=0;right_edge=0;
  }  
}
回复

使用道具 举报

4

主题

48

帖子

0

精华

高级会员

Rank: 4

积分
686
威望
423
贡献
163
兑换币
78
注册时间
2012-2-14
在线时间
50 小时
3#
发表于 2012-3-3 11:27:50 | 只看该作者
回复

使用道具 举报

1

主题

18

帖子

0

精华

高级会员

Rank: 4

积分
567
威望
228
贡献
269
兑换币
2
注册时间
2012-2-28
在线时间
35 小时
毕业学校
大连大学
4#
发表于 2012-3-4 21:27:46 | 只看该作者
回复

使用道具 举报

15

主题

209

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2909
威望
1025
贡献
1370
兑换币
50
注册时间
2011-9-26
在线时间
257 小时
5#
 楼主| 发表于 2012-3-4 21:40:38 | 只看该作者
易枫 发表于 2012-3-3 11:27

问得很白痴,是么- -
回复

使用道具 举报

15

主题

209

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2909
威望
1025
贡献
1370
兑换币
50
注册时间
2011-9-26
在线时间
257 小时
6#
 楼主| 发表于 2012-3-4 21:41:59 | 只看该作者
zhaoqibin123 发表于 2012-3-4 21:27

。。。。。。。求帮忙。。。。
回复

使用道具 举报

1

主题

18

帖子

0

精华

高级会员

Rank: 4

积分
567
威望
228
贡献
269
兑换币
2
注册时间
2012-2-28
在线时间
35 小时
毕业学校
大连大学
7#
发表于 2012-3-4 21:52:19 | 只看该作者
moonlight831 发表于 2012-3-4 21:41
。。。。。。。求帮忙。。。。

中间找可以实现,关键是有时候看到一条黑线,或者一边完整一边残缺,不好处理啊
回复

使用道具 举报

1

主题

41

帖子

0

精华

高级会员

Rank: 4

积分
698
威望
389
贡献
215
兑换币
16
注册时间
2012-2-21
在线时间
47 小时
毕业学校
山大
8#
发表于 2012-3-4 22:14:43 | 只看该作者
这个不难吧
回复

使用道具 举报

15

主题

209

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2909
威望
1025
贡献
1370
兑换币
50
注册时间
2011-9-26
在线时间
257 小时
9#
 楼主| 发表于 2012-3-5 08:09:37 | 只看该作者
zhaoqibin123 发表于 2012-3-4 21:52
中间找可以实现,关键是有时候看到一条黑线,或者一边完整一边残缺,不好处理啊

那你是从左到右的么?
回复

使用道具 举报

15

主题

209

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2909
威望
1025
贡献
1370
兑换币
50
注册时间
2011-9-26
在线时间
257 小时
10#
 楼主| 发表于 2012-3-5 08:10:04 | 只看该作者
摄像头组菜鸟 发表于 2012-3-4 22:14
这个不难吧

那怎么实现呢?咳咳。求求大神
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 06:09 , Processed in 0.050538 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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