智能车制作

标题: 摄像头识别起跑线 [打印本页]

作者: drcess    时间: 2008-6-30 00:14
标题: 摄像头识别起跑线
<>怎样用摄像头识别起跑线 </P><P>很急哦 </P><P>谢谢大家哦</P>
作者: demon    时间: 2008-7-2 08:11
标题: 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>
作者: smartjoy    时间: 2008-7-3 01:09
标题: Re:摄像头识别起跑线
<>得到的起跑线特征比这个差多了,而且还得考虑斜着过起跑线</P>
作者: minminlee    时间: 2008-7-5 19:08
标题: Re:Re:摄像头识别起跑线
<blockquote><img border=0 src=images/icon-quote.gif> <b>smartjoy:</b><br><>得到的起跑线特征比这个差多了,而且还得考虑斜着过起跑线</P><P></blockquote></P><P>同意这种说法 怎么解决?</P>
作者: vds    时间: 2008-7-5 20:05
标题: Re:摄像头识别起跑线
<>单行可以检测到这样的特征值,但是速度太快了就检测不到,没停下来,你们什么做啊</P>
作者: minminlee    时间: 2008-7-5 23:02
标题: Re:摄像头识别起跑线
大家是怎么做的呀?谢谢了
作者: fanshq    时间: 2008-7-7 18:11
标题: Re:摄像头识别起跑线
<>正在思考中。。。。。。。</P>
作者: 920lyj    时间: 2008-7-8 09:34
标题: Re:摄像头识别起跑线
密切关注
作者: zsy7758758    时间: 2008-7-10 18:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: rookie    时间: 2008-7-11 04:19
标题: Re:摄像头识别起跑线
也是有时会误判,把十字线认成起跑线,有时起跑线会漏判,看来比赛时要靠运气了
作者: drcess    时间: 2008-7-12 21:56
标题: 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>
作者: yaofanglover    时间: 2008-7-13 19:43
标题: Re:摄像头识别起跑线
出现过同样的问题,有时候十字线也会误判成起跑线,正在解决中......
作者: zsy7758758    时间: 2008-7-13 20:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: Flyingpigone    时间: 2008-7-13 22:15
标题: Re:摄像头识别起跑线
俺准备加一秒了~~
作者: drcess    时间: 2008-7-14 07:04
标题: Re:Re:Re:摄像头识别起跑线
<>我自己也准备一把抓起了哦&nbsp; 现在舵机还没有调好</P><P>正在解决中 </P><P>那位学长有好建议,请多多指教啊!</P><P>感激!!!!!!!!!!!!!!!!!!!</P>
作者: 妞儿    时间: 2010-3-7 18:08
我觉得你给一个判断的区间就可以了,避免斜着过起跑线啊
作者: nigel1946    时间: 2010-3-25 14:55

作者: zou317    时间: 2010-3-26 23:45
关注中···
作者: crj19880917    时间: 2010-3-27 14:57
对啊有时候会误判的啊
作者: jiutian0396    时间: 2010-3-29 20:18
天天来看看!
作者: huachou    时间: 2010-4-20 19:08
考虑中
作者: 流_云    时间: 2010-4-20 22:03
同样的问题
作者: sososo    时间: 2010-5-7 16:51
关注中
作者: 675432886    时间: 2010-5-7 21:10
密切关注中……
作者: 武当奇人    时间: 2010-5-8 15:13

作者: 飞跃    时间: 2010-5-10 22:36
我们现在也没办法解决这个问题,看看哪位高手有好的建议
作者: liuyh065    时间: 2010-5-11 09:49
密切关注
作者: zzy2099    时间: 2010-5-11 10:04
此问题有正解:
1,区别十字路口和起跑线,异或运算
2,斜着进起跑线,或运算

不明白的再联系
作者: 丘九天    时间: 2010-5-28 19:55
加光电管,如何
作者: yxh1234567    时间: 2010-6-10 20:09
丢呀
作者: 静之音    时间: 2010-6-11 02:22
和十字交叉区别一下就可以 了
作者: feifei    时间: 2010-6-22 21:46
检测跳变沿吧
作者: 潇潇凤仔    时间: 2010-6-27 12:54
还没实现
作者: 小小车有大学问    时间: 2010-7-9 16:08

作者: 小小车有大学问    时间: 2010-7-9 16:08
期待?
作者: zhanghl    时间: 2010-7-10 21:15
关注
作者: zhangD    时间: 2010-7-11 09:52
借助光电
作者: 忽忽    时间: 2010-7-13 21:12
我的有时能检测到,是在不同行中检测到三段黑线,就停车,还不太管用,大家有什么好办法啊
作者: poloverjuice    时间: 2010-7-15 09:00
起跑线的代码一加进去,要不是过弯就停车,要不就是十字交叉停车,算了,,,就加一秒吧!
作者: justing88    时间: 2010-7-17 19:55
回复 5# vds


    你好,可以请教你你解决这个问题了吗??我也碰到这个问题了,现在也不知道如何来解决啊
作者: shuxinxiaozi    时间: 2010-7-17 23:05
保持关注中,比赛时可以通过控制,如果检测不到起跑线就把起跑线检测的程序关掉!
作者: 李浩    时间: 2011-3-13 15:44
围观
作者: LI912683617    时间: 2012-7-7 17:34
zzy2099 发表于 2010-5-11 10:04
此问题有正解:
1,区别十字路口和起跑线,异或运算
2,斜着进起跑线,或运算

你好!你们起跑线解决了吗?能给提供以下思路吗?
作者: hufeng    时间: 2012-7-14 19:17
zzy2099 发表于 2010-5-11 10:04
此问题有正解:
1,区别十字路口和起跑线,异或运算
2,斜着进起跑线,或运算

不明白

作者: 天涯狼    时间: 2016-4-2 10:31
纠结中





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2