智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 13735|回复: 26
打印 上一主题 下一主题

关于线性CCD的黑线提取和处理

  [复制链接]

49

主题

272

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1387

优秀会员奖章活跃会员奖章

威望
709
贡献
354
兑换币
388
注册时间
2013-9-12
在线时间
162 小时
毕业学校
广东石油化工学院
跳转到指定楼层
1#
发表于 2013-12-24 18:48:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
车模还没到,我不知道我的想法对不对,大家指导一下哈。
黑线提取想法:分别把两条黑线的中线位置提取出来,再用两条中线计算出一条中线,然后再利用这条中线和你设定的中线比较,通过比较结果进行方向的转换。
方法:首先要把线性CCD确定在一个高度,得出在该高度黑线所占的点数n,然后从第1个点开始判断,判断该点是否小于阈值,如果i点是小于阈值就继续判断,直到判断到i+x点大于阈值,判断x是否大于等于(n-1),是的话就可以得出(i)点是黑线左边边界,(i+x-1)点是黑线右边边界,同理,第二条黑线也差不多这样提取。这种方法是怕因为波形的不稳定而造成有小量的点数小于阈值,而造成误判,当有n-1以上个点就可以确定这段是黑线了。不知道这种想法行不行得通呢?
提取黑线后处理:首先要先设置中线在某个点,例如我设置在第64个点,我就把提取出来的黑线所在的点数和64比较,如果小于64就向右转,大于64就向左转,要保证黑线的中线保持在64左右,但是这种想法我感觉车子不可能会刚好转到中线在64的位置上,我想是不是中线可以在64附近一定的范围内就当做已经是不用再转向了呢?
没有车子,没办法测试啊,大神指导一下,你们又是怎么提取和处理的呢?

49

主题

272

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1387

优秀会员奖章活跃会员奖章

威望
709
贡献
354
兑换币
388
注册时间
2013-9-12
在线时间
162 小时
毕业学校
广东石油化工学院
2#
 楼主| 发表于 2013-12-24 19:50:59 | 只看该作者
提取黑线哪里漏了一个问题:可能大于阈值的第(i+x)点是因为干扰而使那点畸变的,所以应该还要判断i+x+1是否还是大于阈值,如果不是的话,就继续进行判断,直到连续两点都大于阈值才作为结束,再判断x和n的大小。
回复 支持 反对

使用道具 举报

10

主题

174

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5008
威望
1821
贡献
1105
兑换币
1201
注册时间
2013-8-26
在线时间
1041 小时
毕业学校
塘沽一中
3#
发表于 2013-12-24 20:23:32 | 只看该作者
漏线问题不好处理,还有背景颜色要注意   最好从中间往两边找
回复 支持 反对

使用道具 举报

49

主题

272

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1387

优秀会员奖章活跃会员奖章

威望
709
贡献
354
兑换币
388
注册时间
2013-9-12
在线时间
162 小时
毕业学校
广东石油化工学院
4#
 楼主| 发表于 2013-12-24 20:51:39 | 只看该作者
我是大水货 发表于 2013-12-24 20:23
漏线问题不好处理,还有背景颜色要注意   最好从中间往两边找

你好,从中间开始找比从0开始找有什么差别呢?感觉从中间开始找还要考虑一段黑线横跨中间的情况,还复杂些呢?,还有我还没见过赛道,线性CCD在背景颜色和在黑白色采光得到的模拟值相差大吗?
回复 支持 反对

使用道具 举报

2

主题

30

帖子

0

精华

高级会员

Rank: 4

积分
645
威望
290
贡献
161
兑换币
172
注册时间
2012-12-5
在线时间
97 小时
5#
发表于 2013-12-24 23:12:51 | 只看该作者
"沉沉睡去. 发表于 2013-12-24 20:51
你好,从中间开始找比从0开始找有什么差别呢?感觉从中间开始找还要考虑一段黑线横跨中间的情况,还复杂些 ...

其实更好的是从上次的中线开始往两边搜索线 你可以考虑一下过弯的时候丢线的情况
另外要考虑只搜到一条边时的补线
回复 支持 反对

使用道具 举报

24

主题

1090

帖子

0

精华

常驻嘉宾

不会做车,只会瞎BB的毕业考研狗

Rank: 8Rank: 8

积分
5429

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

QQ
威望
3088
贡献
663
兑换币
2343
注册时间
2012-11-4
在线时间
839 小时
毕业学校
河北联合大学
6#
发表于 2013-12-25 10:21:47 | 只看该作者
我把所有的点先进行了二值化,然后从中间到两边找跳变沿。效果还凑合。但是现在在困扰丢线的补线问题。还没想到好的方法。
回复 支持 反对

使用道具 举报

24

主题

1090

帖子

0

精华

常驻嘉宾

不会做车,只会瞎BB的毕业考研狗

Rank: 8Rank: 8

积分
5429

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

QQ
威望
3088
贡献
663
兑换币
2343
注册时间
2012-11-4
在线时间
839 小时
毕业学校
河北联合大学
7#
发表于 2013-12-25 10:24:02 | 只看该作者
提取黑线后处理:首先要先设置中线在某个点,例如我设置在第64个点,我就把提取出来的黑线所在的点数和64比较,如果小于64就向右转,大于64就向左转,要保证黑线的中线保持在64左右,但是这种想法我感觉车子不可能会刚好转到中线在64的位置上,我想是不是中线可以在64附近一定的范围内就当做已经是不用再转向了呢?
------------------------------------------------
关于这个问题可以就算不是在64这点就可以往64这个点微调。舵机动作很小就可以了。
回复 支持 反对

使用道具 举报

2

主题

30

帖子

0

精华

高级会员

Rank: 4

积分
645
威望
290
贡献
161
兑换币
172
注册时间
2012-12-5
在线时间
97 小时
8#
发表于 2013-12-25 13:55:43 | 只看该作者
旋风麦林 发表于 2013-12-25 10:21
我把所有的点先进行了二值化,然后从中间到两边找跳变沿。效果还凑合。但是现在在困扰丢线的补线问题。还没 ...

边缘检测比二值化好点丢一边线时可用找到的线加减一个数值确定为中线

回复 支持 反对

使用道具 举报

49

主题

272

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1387

优秀会员奖章活跃会员奖章

威望
709
贡献
354
兑换币
388
注册时间
2013-9-12
在线时间
162 小时
毕业学校
广东石油化工学院
9#
 楼主| 发表于 2013-12-25 16:13:22 | 只看该作者
旋风麦林 发表于 2013-12-25 10:21
我把所有的点先进行了二值化,然后从中间到两边找跳变沿。效果还凑合。但是现在在困扰丢线的补线问题。还没 ...

你是用寻黑线的办法吗?是先设定一条中线,然后要使当前中线和设定中线靠近吗?
回复 支持 反对

使用道具 举报

49

主题

272

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1387

优秀会员奖章活跃会员奖章

威望
709
贡献
354
兑换币
388
注册时间
2013-9-12
在线时间
162 小时
毕业学校
广东石油化工学院
10#
 楼主| 发表于 2013-12-25 16:18:29 | 只看该作者
旋风麦林 发表于 2013-12-25 10:21
我把所有的点先进行了二值化,然后从中间到两边找跳变沿。效果还凑合。但是现在在困扰丢线的补线问题。还没 ...

还有,我感觉二值化和不二值化应该差不多吧,都是要和阈值进行比较的,二值化有什么好处吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 02:31 , Processed in 0.219713 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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