本帖最后由 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 刚刚想出来的想法,不知道以前有人提起没有,对于想进行程序优化的朋友应该是一个不错的想法,明早上起来实现一下看看,实现过的同学不妨分享一下效果看看。。最近使用边缘跟踪算法,但是苦于图像的质量不好,经常跟踪错乱。。特别是胡椒盐噪点,无论是寻找起点的时候还是过程中都对边缘跟踪产生致命影响,而中值滤波似乎消耗运算资源太多了。
|