智能车制作

标题: 从6月20号开始真正有时间开始动手,全部打算采用自己设计的算法,刚搞定图像,求点评 [打印本页]

作者: 亦羽々疯子    时间: 2012-7-12 01:45
标题: 从6月20号开始真正有时间开始动手,全部打算采用自己设计的算法,刚搞定图像,求点评
用的野火K60最小板,算法已经设计好,之前几天做的代码由于图像采集问题,误差计算极其不稳定,目前改进中,这是优化后的十字路口图像,采用相邻点的灰度差进行二值化做的,未经噪声处理,效果还不错
由于本人对于滤波一块不熟悉,距离比赛只有8天了,所以只打算再做简单的补线处理后求中线来计算偏差,通宵加班ING~~{:soso_e154:}
原始图像
[attach]29951[/attach]
上位机图像
[attach]29950[/attach]

作者: xiazeyang1008    时间: 2012-7-12 01:51
这么牛逼
作者: lrbdh    时间: 2012-7-12 05:10

作者: 冰水混合物    时间: 2012-7-12 08:49
图像碉堡了
作者: 笨鹅    时间: 2012-7-12 08:50
是用k60吗?我怎么采回来都是乱码,行场中断都正常呀

作者: vgjkl    时间: 2012-7-12 08:50
用的Sobel算子?
作者: 亦羽々疯子    时间: 2012-7-12 10:07
vgjkl 发表于 2012-7-12 08:50
用的Sobel算子?

很简单的算法,相邻两个点的灰度值差值超过某个值(我定的15),也就值检测的是黑白线的跳变沿

作者: iceboy    时间: 2012-7-12 13:36
注意稳定性
作者: wenhaoyuan    时间: 2012-7-12 15:28
我的也可以做到了·~~哈哈,离比赛不远了
作者: 追寻,足迹    时间: 2012-7-12 20:34
问下,我串口能采到数据,上位机就看不到了,何解?
作者: 小挺挺    时间: 2012-7-12 22:05
华东大后天就比赛了
作者: moonelfyu    时间: 2012-7-12 22:26
要是光电的话就果断来不及了
作者: 亦羽々疯子    时间: 2012-7-13 00:36
追寻,足迹 发表于 2012-7-12 20:34
问下,我串口能采到数据,上位机就看不到了,何解?

什么上位机?纯数据的格式能收到的话,其他上位机无法显示要么是协议出错,要么是规格不对,像我这个图像上位机,如果分辨率设为400*100,那么 每次的标志数据之间 必须有 40000个数据才能显示
作者: 亦羽々疯子    时间: 2012-7-13 00:38
moonelfyu 发表于 2012-7-12 22:26
要是光电的话就果断来不及了

弱弱的说一下我们学校两组光电,电磁摄像头各一组,现在电磁组的和我的摄像头基本能保证跑完全程了,光电的基本只是做完调试用的硬件电路板。。。。。。

作者: 亦羽々疯子    时间: 2012-7-13 00:39
小挺挺 发表于 2012-7-12 22:05
华东大后天就比赛了

一夜通宵,调完代码板子坏了,今天向老师换了板子,加上老师的意见,现在基本能保证跑完全程了,虽然速度只有1米多,我们是20号比赛
作者: 无敌快车    时间: 2012-7-13 03:24
追寻,足迹 发表于 2012-7-12 20:34
问下,我串口能采到数据,上位机就看不到了,何解?

如果上位机能够接收到数据,那应该是你没有成功把数据从接收缓冲区里取出来。。。
作者: moonelfyu    时间: 2012-7-13 09:49
亦羽々疯子 发表于 2012-7-13 00:38
弱弱的说一下我们学校两组光电,电磁摄像头各一组,现在电磁组的和我的摄像头基本能保证跑完全程了,光电 ...

我们也是两组光电一组摄像头
激光头撞一下伤不起啊

作者: 追寻,足迹    时间: 2012-7-13 21:59
亦羽々疯子 发表于 2012-7-13 00:36
什么上位机?纯数据的格式能收到的话,其他上位机无法显示要么是协议出错,要么是规格不对,像我这个图像 ...


[attach]30041[/attach]用的是这上位机,不知道你有过没,我协议是照他说的写的uart_putchar(UART1,0x00);      uart_putchar(UART1,0xff);
      uart_putchar(UART1,0x01);
      uart_putchar(UART1,0x00);
      for(i=0;i<H;i++)    //行
      {
        for(j=0;j<V;j++)  //列
        {
          uart_putchar(UART1,video[j]);
}
}
我是27行160列,就设置为高度27宽度160对吗?

作者: 追寻,足迹    时间: 2012-7-13 22:00
无敌快车 发表于 2012-7-13 03:24
如果上位机能够接收到数据,那应该是你没有成功把数据从接收缓冲区里取出来。。。

uart_putchar(UART1,0x00);
      uart_putchar(UART1,0xff);
      uart_putchar(UART1,0x01);
      uart_putchar(UART1,0x00);
      for(i=0;i<H;i++)    //行
      {
        for(j=0;j<V;j++)  //列
        {
          uart_putchar(UART1,video[j]);
}
} 这样不对吗?


作者: nangoole    时间: 2012-7-14 00:03
原始图像是怎么出来的啊。。。。

作者: 亦羽々疯子    时间: 2012-7-14 00:09
追寻,足迹 发表于 2012-7-13 21:59
用的是这上位机,不知道你有过没,我协议是照他说的写的uart_putchar(UART1,0x00);      uart_putchar( ...

串口发送很慢的,把循环的周期拉大应该就可以了

作者: 无敌快车    时间: 2012-7-14 01:27
追寻,足迹 发表于 2012-7-13 22:00
uart_putchar(UART1,0x00);
      uart_putchar(UART1,0xff);
      uart_putchar(UART1,0x01);

你这个是下位机单片机的程序吧。。。。。图像显示应该是在上位机吧。。。
作者: 别逼我做卧底    时间: 2012-7-14 11:23
同求

作者: zhangkang90125    时间: 2012-7-14 12:30
这图像很好啊!
作者: 追寻,足迹    时间: 2012-7-14 20:51
无敌快车 发表于 2012-7-14 01:27
你这个是下位机单片机的程序吧。。。。。图像显示应该是在上位机吧。。。

是啊,那是上位机的协议,但上位机里美显示出来那图像啊!
作者: 追寻,足迹    时间: 2012-7-14 20:59
亦羽々疯子 发表于 2012-7-14 00:09
串口发送很慢的,把循环的周期拉大应该就可以了

你谁是说把 for(i=0;i<H;i++)    //行      {
        for(j=0;j<V;j++)  //列
        {
          uart_putchar(UART1,video[j]);
}
这个里面的H和V改成更多的值?那样受到的数据不就多了吗?,不就不符合协议了吗?


作者: 雪域高原    时间: 2012-7-15 14:08

作者: 无敌快车    时间: 2012-7-15 17:30
追寻,足迹 发表于 2012-7-14 20:51
是啊,那是上位机的协议,但上位机里美显示出来那图像啊!

要不你先试试用已经成熟的串口调试助手试试看看你发的数据对不对
作者: xinghezilong    时间: 2012-7-15 22:18
楼主真牛




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