智能车制作
标题: 大幅度减少xs128采集ov7620产生的噪点从而不用浪费资源进行中值滤波的一种奇妙的实现 [打印本页]
作者: betesla 时间: 2013-5-31 02:34
标题: 大幅度减少xs128采集ov7620产生的噪点从而不用浪费资源进行中值滤波的一种奇妙的实现
本帖最后由 betesla 于 2013-5-31 02:34 编辑
废话少说,直接上主题:
1.xs128采集得到胡椒盐噪点的原因(引用自新手入门摄像头-第六篇:数字摄像头使用常见问题FAQ 对于OV7620来说,行信号HREF与场信号VSYN的时间比较长,XS12的单片机足以捕捉到;但是OV7620的像素同步信号PCLK只有73ns,而XS12单片机的稳定总线时钟只有25M,很难捕捉到PCLK这个像素同步信号;而PCLK周期性输出,只有高电平数据有效,低电平数据无效。由于单片机和摄像头不能同步,只是凭借循环去读取IO口的图像数据,有极大的可能性读到PCLK的低电平即无效数据,在上位机呈现的就是噪点。另外,用XS128采集OV7620,本身OV7620的是30万像素,由于XS128能力较K60差,隔行隔像素采集,分辨率最终被降低到了3千像素,而且上位机显示还拉伸了图像,所以看起来图像质量比较差。
2.原理:采集时候来不及判断pclk的值,那就将这个值一起采集回来放在像素灰度值的最后一位,采集完毕就可以知道哪些像素是无效图像从而不用根据中值滤波才能处理噪点了。
3.将ov7620的pclk像素信号引脚接到进行灰度值采集的单片机输入口的最后一个引脚上(例如我用的是pa0-pa7,那么拔掉pa0原来的数据线,接上pclk的信号),这样在采集正常像素的时候,像素的灰度值有可能误差1(这点误差根本没什么影响),正常像素的最低位为1,但是异常像素的最低位为0。这样只要看采集回来的图像的每个像素点最低位是否为0便可判断是否是胡椒盐噪点,如果是胡椒盐噪点的话便赋值为左右两个点的均值。这样便可以只对每个像素进行一次比较,少数计算便可滤除噪点,相比于中值滤波,这样的优点是十分明显的。
4.2013年5月31日2:14:49 刚刚想出来的想法,不知道以前有人提起没有,对于想进行程序优化的朋友应该是一个不错的想法,明早上起来实现一下看看,实现过的同学不妨分享一下效果看看。。最近使用边缘跟踪算法,但是苦于图像的质量不好,经常跟踪错乱。。特别是胡椒盐噪点,无论是寻找起点的时候还是过程中都对边缘跟踪产生致命影响,而中值滤波似乎消耗运算资源太多了。
[attach]46315[/attach]
[attach]46317[/attach]
作者: 1228463834 时间: 2013-5-31 07:42
[attach]46318[/attach] 你还有心思搞毛的滤波,校内报销了 你就废了
作者: betesla 时间: 2013-5-31 08:19
1228463834 发表于 2013-5-31 07:42
你还有心思搞毛的滤波,校内报销了 你就废了
作者: 徐晋鸿! 时间: 2013-5-31 08:58
想法很赞,可以一试,期待帖子的跟进
作者: 封号式寂寞 时间: 2013-5-31 09:56
顶一个
作者: xjtuzhanghongji 时间: 2013-5-31 10:10
想法确实不错,可惜我们已经不用数字摄像头了
作者: wodehaodxa 时间: 2013-5-31 11:07
能介绍一下你的边缘跟踪法吗?
作者: seakid 时间: 2013-5-31 11:29
不错,期待尝试
作者: DEMOK 时间: 2013-5-31 16:15
楼主是动了脑筋的!非常赞!做法可行!
纠正下,一般我们都叫椒盐噪声,不叫胡椒盐噪点
另外,在任何存在噪声的前提下,中值滤波都是很有必要的,而且效率极高的
作者: betesla 时间: 2013-5-31 18:25
wodehaodxa 发表于 2013-5-31 11:07
能介绍一下你的边缘跟踪法吗?
先中心查找找到起点,再根据起点对八个方向的像素进行评估,评估的方法是计算从上一个像素到现在的像素所走的方向两边的灰度值之差的绝对值的和,取这个评估值最大的点作为之后前进的方向。这样循环迭代下去就能找到一条边缘。
作者: 用户不存在 时间: 2013-5-31 18:29
大神 边缘跟踪法怎么破虚线
作者: betesla 时间: 2013-5-31 18:36
DEMOK 发表于 2013-5-31 16:15
楼主是动了脑筋的!非常赞!做法可行!
纠正下,一般我们都叫椒盐噪声,不叫胡椒盐噪点
另外,在任何存在 ...
我试了试,拔掉了所有数据线,将pclk直接接到pa7上观察采集到的pclk信号,有效时灰度值为128,无效时灰度值为0,这样在上位机上采集的信号是这样的
[attach]46345[/attach]
说明在像素无效的时候进行采集的情况时很多的。试着对这些标记为无效的像素进行取左右的平均值,发现椒盐噪点仍然存在,要校内赛了,没仔细验证程序正确性,等到校内赛完之后再研究研究。
作者: betesla 时间: 2013-5-31 19:10
用户不存在 发表于 2013-5-31 18:29
大神 边缘跟踪法怎么破虚线
如果赛道颜色不是白色的话,那么赛道边缘使用边缘追踪也是可以追踪到的
如图所示:
[attach]46346[/attach]
问题是虚线在这样的图像上表现出来是一块区域,这块区域与赛道背景的差别可能会比赛道与背景的差别大
这样的话边缘追踪可能会错误的变成这样。如下图所示:
[attach]46347[/attach]
这样只要对边缘追踪的方向限制一下即可,在单边方向大幅度变化的时候判断为悲剧现象,重新寻找,直到变化不大为止,在双边向相反的方向延伸时,判断为十字路口,重新启动边缘追踪对上面的图像进行跟踪。或者对图像进行处理,找到黑色点,以这个黑色点作为中心在一定范围之内寻找其他黑色点,将黑色点连线。。这个可以试试
作者: 林的0922 时间: 2013-5-31 19:28
你的摄像头能看到那么远么
作者: betesla 时间: 2013-5-31 19:51
林的0922 发表于 2013-5-31 19:28
你的摄像头能看到那么远么
这还不是广角镜头。我采集了80*80的图像。
作者: 用户不存在 时间: 2013-5-31 20:07
betesla 发表于 2013-5-31 19:10
如果赛道颜色不是白色的话,那么赛道边缘使用边缘追踪也是可以追踪到的
如图所示:
太厉害了
作者: wodehaodxa 时间: 2013-6-7 14:36
betesla 发表于 2013-5-31 18:25
先中心查找找到起点,再根据起点对八个方向的像素进行评估,评估的方法是计算从上一个像素到现在的像素所 ...
运算量是不是大了点?
作者: 背负蓝天的云 时间: 2013-6-7 21:12
感觉还是滤波吧。。。。。
作者: 咳咳!!! 时间: 2013-6-7 21:46
用的什么给黑线加上红线啊
作者: betesla 时间: 2013-6-11 15:46
咳咳!!! 发表于 2013-6-7 21:46
用的什么给黑线加上红线啊
单片机做标记,上位机识别标记显示为红色
作者: betesla 时间: 2013-6-11 15:46
wodehaodxa 发表于 2013-6-7 14:36
运算量是不是大了点?
运算量不大啊 完全能够正常运行
作者: 简单丹 时间: 2013-6-11 17:22
想法很不错...每一个像素的都要判断最后一位是否位一也需要不少时间开销吧
作者: Shadows 时间: 2013-6-11 18:01
betesla 发表于 2013-5-31 18:25
先中心查找找到起点,再根据起点对八个方向的像素进行评估,评估的方法是计算从上一个像素到现在的像素所 ...
也曾这么想过,,,嫌烦就放弃了。。。。。
作者: wanbinqs 时间: 2013-7-8 20:44
betesla 发表于 2013-6-11 15:46
运算量不大啊 完全能够正常运行
求楼主用的上位机程序 一直找不到好用的 。。。抓取的灰度值图象太小。。。281057353@qq.com
作者: betesla 时间: 2013-7-8 22:48
wanbinqs 发表于 2013-7-8 20:44
求楼主用的上位机程序 一直找不到好用的 。。。抓取的灰度值图象太小。。。
上位机是自己写的,通讯格式不罗嗦了。有什么不知道的加我qq1077703533就行。
作者: betesla 时间: 2013-7-8 22:52
wanbinqs 发表于 2013-7-8 20:44
求楼主用的上位机程序 一直找不到好用的 。。。抓取的灰度值图象太小。。。
对了 现在用的抓取图片也是一个像素生成一个像素的。。不是以前一个像素生成5*5的一个像素块。不知道合不合楼主心愿、不过显示的时候也是实现了放大的功能,不过放大之后就模糊了
作者: wanbinqs 时间: 2013-7-9 17:23
betesla 发表于 2013-7-8 22:52
对了 现在用的抓取图片也是一个像素生成一个像素的。。不是以前一个像素生成5*5的一个像素块。不知道合不 ...
模糊也没关系啊。。昨晚还能看到灰度图象的 今天早上来了 就又调不出来图象了。。用你的上位机 你帮我改了程序以后一用马上蓝屏
作者: wanbinqs 时间: 2013-7-9 17:28
betesla 发表于 2013-7-8 22:52
对了 现在用的抓取图片也是一个像素生成一个像素的。。不是以前一个像素生成5*5的一个像素块。不知道合不 ...
[attach]47811[/attach]
这是我能用的这个上位机 , 出的灰度图象不能放大 120列 实在是小。。
作者: 熊吉 时间: 2013-11-25 20:25
楼主真给力,我刚刚试了一下,效果还是挺满意的,如果二值化了就没有什么噪声点了
作者: 疯狂的想法 时间: 2013-11-26 21:57
可以试一下
作者: RJPAN 时间: 2014-5-3 21:43
谢谢楼主,这想法真的很赞,我试了一下,出来的结果和中值滤波的差不多
作者: 吼吼哈哈 时间: 2014-5-6 20:57
梦璃的头像!
作者: 梁大力 时间: 2015-3-31 20:26
赞楼主是动了脑筋的!非常赞!做法可行!
作者: 缘深缘浅 时间: 2015-3-31 21:46
楼主,障碍物怎么破?!边界位置突变,会不会沿着之前找边线的趋势找下去,而不识别障碍物。
作者: 小水管 时间: 2015-4-9 14:10
顶。。。。。
作者: l1985571119 时间: 2016-3-25 16:41
大神能留个QQ吗,有问题咨询一下
欢迎光临 智能车制作 (http://dns.znczz.com/) |
Powered by Discuz! X3.2 |