智能车制作

标题: 关于线性CCD的黑线提取和处理 [打印本页]

作者: "沉沉睡去.    时间: 2013-12-24 18:48
标题: 关于线性CCD的黑线提取和处理
车模还没到,我不知道我的想法对不对,大家指导一下哈。
黑线提取想法:分别把两条黑线的中线位置提取出来,再用两条中线计算出一条中线,然后再利用这条中线和你设定的中线比较,通过比较结果进行方向的转换。
方法:首先要把线性CCD确定在一个高度,得出在该高度黑线所占的点数n,然后从第1个点开始判断,判断该点是否小于阈值,如果i点是小于阈值就继续判断,直到判断到i+x点大于阈值,判断x是否大于等于(n-1),是的话就可以得出(i)点是黑线左边边界,(i+x-1)点是黑线右边边界,同理,第二条黑线也差不多这样提取。这种方法是怕因为波形的不稳定而造成有小量的点数小于阈值,而造成误判,当有n-1以上个点就可以确定这段是黑线了。不知道这种想法行不行得通呢?
提取黑线后处理:首先要先设置中线在某个点,例如我设置在第64个点,我就把提取出来的黑线所在的点数和64比较,如果小于64就向右转,大于64就向左转,要保证黑线的中线保持在64左右,但是这种想法我感觉车子不可能会刚好转到中线在64的位置上,我想是不是中线可以在64附近一定的范围内就当做已经是不用再转向了呢?
没有车子,没办法测试啊,大神指导一下,你们又是怎么提取和处理的呢?

作者: "沉沉睡去.    时间: 2013-12-24 19:50
提取黑线哪里漏了一个问题:可能大于阈值的第(i+x)点是因为干扰而使那点畸变的,所以应该还要判断i+x+1是否还是大于阈值,如果不是的话,就继续进行判断,直到连续两点都大于阈值才作为结束,再判断x和n的大小。

作者: 我是大水货    时间: 2013-12-24 20:23
漏线问题不好处理,还有背景颜色要注意   最好从中间往两边找
作者: "沉沉睡去.    时间: 2013-12-24 20:51
我是大水货 发表于 2013-12-24 20:23
漏线问题不好处理,还有背景颜色要注意   最好从中间往两边找

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

作者: sTilL_7.度    时间: 2013-12-24 23:12
"沉沉睡去. 发表于 2013-12-24 20:51
你好,从中间开始找比从0开始找有什么差别呢?感觉从中间开始找还要考虑一段黑线横跨中间的情况,还复杂些 ...

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

作者: 旋风麦林    时间: 2013-12-25 10:21
我把所有的点先进行了二值化,然后从中间到两边找跳变沿。效果还凑合。但是现在在困扰丢线的补线问题。还没想到好的方法。
作者: 旋风麦林    时间: 2013-12-25 10:24
提取黑线后处理:首先要先设置中线在某个点,例如我设置在第64个点,我就把提取出来的黑线所在的点数和64比较,如果小于64就向右转,大于64就向左转,要保证黑线的中线保持在64左右,但是这种想法我感觉车子不可能会刚好转到中线在64的位置上,我想是不是中线可以在64附近一定的范围内就当做已经是不用再转向了呢?
------------------------------------------------
关于这个问题可以就算不是在64这点就可以往64这个点微调。舵机动作很小就可以了。
作者: sTilL_7.度    时间: 2013-12-25 13:55
旋风麦林 发表于 2013-12-25 10:21
我把所有的点先进行了二值化,然后从中间到两边找跳变沿。效果还凑合。但是现在在困扰丢线的补线问题。还没 ...

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


作者: "沉沉睡去.    时间: 2013-12-25 16:13
旋风麦林 发表于 2013-12-25 10:21
我把所有的点先进行了二值化,然后从中间到两边找跳变沿。效果还凑合。但是现在在困扰丢线的补线问题。还没 ...

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

作者: "沉沉睡去.    时间: 2013-12-25 16:18
旋风麦林 发表于 2013-12-25 10:21
我把所有的点先进行了二值化,然后从中间到两边找跳变沿。效果还凑合。但是现在在困扰丢线的补线问题。还没 ...

还有,我感觉二值化和不二值化应该差不多吧,都是要和阈值进行比较的,二值化有什么好处吗?
作者: 我们一起走过    时间: 2013-12-25 20:19
"沉沉睡去. 发表于 2013-12-25 16:18
还有,我感觉二值化和不二值化应该差不多吧,都是要和阈值进行比较的,二值化有什么好处吗?

[attach]53804[/attach]二值化后图像就如方波一样的,这个是没二值化的,我们可以交流下,1172665821
作者: 旋风麦林    时间: 2013-12-25 21:08
sTilL_7.度 发表于 2013-12-25 13:55
边缘检测比二值化好点丢一边线时可用找到的线加减一个数值确定为中线

如果两边边沿都丢掉怎么办。。

作者: 旋风麦林    时间: 2013-12-25 21:12
"沉沉睡去. 发表于 2013-12-25 16:18
还有,我感觉二值化和不二值化应该差不多吧,都是要和阈值进行比较的,二值化有什么好处吗?

我也没觉得二值化之后有啥好处,只是图像看的比较整齐了。二至话之后就相当于比较之后把它改成一个值,还有二值化之后找边沿会比较好找。直接循环扫描就可以了。
作者: liningbo888    时间: 2013-12-26 00:07
二值化后可以提高处理速度,不过相应的误判会增多
作者: "沉沉睡去.    时间: 2013-12-26 09:40
我们一起走过 发表于 2013-12-25 20:19
二值化后图像就如方波一样的,这个是没二值化的,我们可以交流下,1172665821

我车子两天后到,我这几天有点事要去外地一下,回来和你一起探讨,我这几天再想想有什么方法先{:soso_e113:}
作者: sTilL_7.度    时间: 2013-12-26 22:41
旋风麦林 发表于 2013-12-25 21:08
如果两边边沿都丢掉怎么办。。

要根据前瞻还有算法来动作
一般来说舵机打死就行

作者: 无声的音乐    时间: 2013-12-28 13:09
记录上一次的中点,从上一次的中点往两边找
作者: yangjie1995    时间: 2014-3-19 23:23
sTilL_7.度 发表于 2013-12-24 23:12
其实更好的是从上次的中线开始往两边搜索线 你可以考虑一下过弯的时候丢线的情况
另外要考虑只搜到一条边 ...

请问一下从上次中线往两边找怎样确定偏移量呢?

作者: hcy1993    时间: 2014-3-20 17:02
你假设的中线是第64个点,是跑道的中线还是黑线的中线!?


作者: 原来地球还在转    时间: 2014-3-20 18:01
sTilL_7.度 发表于 2013-12-25 13:55
边缘检测比二值化好点丢一边线时可用找到的线加减一个数值确定为中线

请问边沿检测和二值化相比有什么具体的优点?可以说的详细一些么

作者: 我们是做小车的    时间: 2014-6-22 13:08
我们一起走过 发表于 2013-12-25 20:19
二值化后图像就如方波一样的,这个是没二值化的,我们可以交流下,1172665821

请问你们这个ccd安装的前瞻大概是多少厘米啊?我们的图像赛道宽度比较窄求告诉。。。。

作者: 我们一起走过    时间: 2014-6-24 12:01
我们是做小车的 发表于 2014-6-22 13:08
请问你们这个ccd安装的前瞻大概是多少厘米啊?我们的图像赛道宽度比较窄求告诉。。。。

这个是以前50度视角的蓝宙ccd,前瞻大约40,现在两个ccd都换成蓝宙90度视角的ccd了
作者: 我们是做小车的    时间: 2014-6-24 15:18
我们一起走过 发表于 2014-6-24 12:01
这个是以前50度视角的蓝宙ccd,前瞻大约40,现在两个ccd都换成蓝宙90度视角的ccd了



.谢谢你啦。。。

作者: 我们是做小车的    时间: 2014-6-24 15:20
我们是做小车的 发表于 2014-6-24 15:18
.谢谢你啦。。。

那你们速度现在有多块啊?


作者: 钢琴曲    时间: 2014-6-25 16:00
差值法找边线 有可能吧左线当成右线的情况  刚好在中间时即将要超过中间值64时就是 打出反角。
作者: 420741957    时间: 2016-1-14 14:15
看看,尽快尽快
作者: ambition0123    时间: 2016-7-3 11:12
不懂啊,小白




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