智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 18524|回复: 44
打印 上一主题 下一主题

摄像头识别起跑线

  [复制链接]

0

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
418
QQ
威望
297
贡献
93
兑换币
70
注册时间
2008-6-30
在线时间
14 小时
跳转到指定楼层
1#
发表于 2008-6-30 00:14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<>怎样用摄像头识别起跑线 </P><P>很急哦 </P><P>谢谢大家哦</P>

0

主题

31

帖子

0

精华

禁止访问

积分
263
威望
225
贡献
32
兑换币
8
注册时间
2007-12-20
在线时间
3 小时
2#
发表于 2008-7-10 18:14:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

28

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
QQ
威望
206
贡献
22
兑换币
0
注册时间
2008-4-27
在线时间
0 小时
3#
发表于 2008-7-11 04:19:10 | 只看该作者

Re:摄像头识别起跑线

也是有时会误判,把十字线认成起跑线,有时起跑线会漏判,看来比赛时要靠运气了
回复 支持 反对

使用道具 举报

0

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
418
QQ
威望
297
贡献
93
兑换币
70
注册时间
2008-6-30
在线时间
14 小时
4#
 楼主| 发表于 2008-7-12 21:56:53 | 只看该作者

Re:Re:摄像头识别起跑线

<>我们的车还存在一个问题就是 在有转弯的时候转的不好 而且速度一提上去 我们的检测就存在问题 </P><P>自己觉得还是检测的不是很好 </P><P>下面是我们的黑线中心提取方法</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN-US>-----------------------------------------</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: &#39;Times New Roman&#39;; mso-hansi-font-family: &#39;Times New Roman&#39;">摄像头黑线中心提取</SPAN><SPAN lang=EN-US>----------------------------------------------</SPAN></FONT></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>void imageSamp(void){</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>char i=0;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>unsigned char j=8;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>char m=0;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>char n=0;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>for(i=ROW_MAX-1;i&gt;=0;i--){</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>in_flag_1=0;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>out_flag_1=0;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>for(j=0;j&lt;LINE_MAX;j++){</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>ccd[j]=temp_vd<i>[j];}</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>j=8;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>while(j&lt;LINE_MAX-3){</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>dif=ccd[j]-ccd[j+3];</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>if(dif&gt;=LATCH_P){black_in=j+3;j=j+2;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>in_flag_1=1;}</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>else {if(dif&lt;=LATCH_N){black_out=j+3;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>j=j+2;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>out_flag_1=1;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>}</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>}</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>j++;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>}</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>if(in_flag_1==1&amp;&amp;out_flag_1==1)</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN-US>black_mid<i>=black_out-2;/*</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: &#39;Times New Roman&#39;; mso-hansi-font-family: &#39;Times New Roman&#39;">黑线中心位置</SPAN><SPAN lang=EN-US>*/</SPAN></FONT></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN-US>if(in_flag_1==1&amp;&amp;out_flag_1==0)black_mid<i>=50;//</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: &#39;Times New Roman&#39;; mso-hansi-font-family: &#39;Times New Roman&#39;">右偏</SPAN></FONT></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN-US>if(in_flag_1==0&amp;&amp;out_flag_1==1)black_mid<i>=7; //</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: &#39;Times New Roman&#39;; mso-hansi-font-family: &#39;Times New Roman&#39;">左偏</SPAN></FONT></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>if(in_flag_1==0&amp;&amp;out_flag_1==0)black_mid<i>=60;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN-US>/*</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: &#39;Times New Roman&#39;; mso-hansi-font-family: &#39;Times New Roman&#39;">滤波,得到滤波后每行黑线的中心位置</SPAN><SPAN lang=EN-US>*/</SPAN></FONT></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>for(i=1;i&lt;ROW_MAX-1;i++){</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>temp=get_mid(black_mid[i-1],black_mid<i>,black_mid[i+1]);</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3>black_mid<i>=temp;}</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>disturb=0;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"><FONT size=3>&nbsp; </FONT></SPAN></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>for(m=row_max-1,n=samp_row-1;m&gt;=0;m=m-3,n=n-1){</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"><FONT size=3>&nbsp; </FONT></SPAN></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>data[n]=black_mid[m];</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if(data[n]&gt;55) {</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"><FONT size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if(n==samp_row-1) data[n]=data[0];</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>else data[n]=data[n+1];</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>disturb++;</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>}</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</FONT></SPAN></P><P>很简单 自己觉得问题很大 但是在速度很慢的时候不会出现什么问题</P><P>希望提一些宝贵的意见&nbsp; </P><P>&nbsp;</P><P>很急哦&nbsp; !因为我们6.15号才开始做 时间很紧。</P><P>&nbsp;</P><P>非常感谢好心人的帮助。</P>
回复 支持 反对

使用道具 举报

0

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
418
QQ
威望
297
贡献
93
兑换币
70
注册时间
2008-6-30
在线时间
14 小时
5#
 楼主| 发表于 2008-7-14 07:04:59 | 只看该作者

Re:Re:Re:摄像头识别起跑线

<>我自己也准备一把抓起了哦&nbsp; 现在舵机还没有调好</P><P>正在解决中 </P><P>那位学长有好建议,请多多指教啊!</P><P>感激!!!!!!!!!!!!!!!!!!!</P>
回复 支持 反对

使用道具 举报

0

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
威望
204
贡献
22
兑换币
0
注册时间
2008-2-21
在线时间
1 小时
6#
发表于 2008-7-13 19:43:05 | 只看该作者

Re:摄像头识别起跑线

出现过同样的问题,有时候十字线也会误判成起跑线,正在解决中......
回复 支持 反对

使用道具 举报

0

主题

31

帖子

0

精华

禁止访问

积分
263
威望
225
贡献
32
兑换币
8
注册时间
2007-12-20
在线时间
3 小时
7#
发表于 2008-7-13 20:53:38 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
244
威望
220
贡献
22
兑换币
0
注册时间
2008-4-4
在线时间
1 小时
8#
发表于 2008-7-13 22:15:30 | 只看该作者

Re:摄像头识别起跑线

俺准备加一秒了~~
回复 支持 反对

使用道具 举报

0

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
459
威望
333
贡献
100
兑换币
78
注册时间
2008-4-21
在线时间
13 小时
9#
发表于 2008-7-8 09:34:59 | 只看该作者

Re:摄像头识别起跑线

密切关注
回复 支持 反对

使用道具 举报

489

主题

1691

帖子

1

精华

管理员

网站创始人&站长

Rank: 11Rank: 11Rank: 11Rank: 11

积分
85856

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
56934
贡献
17352
兑换币
13128
注册时间
2007-6-8
在线时间
5785 小时
10#
发表于 2008-7-2 08:11:05 | 只看该作者

Re:摄像头识别起跑线

<><FONT size=3>假设白为0黑为1的话,起跑线的特征大致应该为</FONT></P><P><FONT size=3>00000000<STRONG>11111</STRONG>0000<STRONG>111</STRONG>0000<STRONG>11111</STRONG>00000000000&nbsp;</FONT></P><P><FONT size=3>实测后根据这个特征就能检测到了</FONT></P><P><FONT size=3>如果不能100%检测到的话还有一个方法就是把起跑线当作十字交叉线检测!在实际比赛前将比赛的交叉线个数输入单片机!</FONT></P>
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-5 16:33 , Processed in 0.451780 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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