智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2594|回复: 8
打印 上一主题 下一主题

CCD和摄像头滤波

[复制链接]

8

主题

37

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1056
威望
514
贡献
294
兑换币
326
注册时间
2014-6-21
在线时间
124 小时
毕业学校
在读
跳转到指定楼层
1#
发表于 2015-4-23 11:15:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    刚看了一篇经典滤波算法的文章,一共有11个滤波算法,原文:


          和它们相比,对于我的滤波算法,我还是比较满意的
           对采集回来的数先进行二值化,阈值采用中间值,每个值左右对比,出现突变,则拿掉该值。


源代码如下:
//  *************采用最大值最小值作为阀值**********************/

          ccd_max=0;
          ccd_mix=100;
          for(row=1;row<128;row++)            
                {
                                                 if(Pixel[row]>ccd_max)     // 128点中最大值
                                                   ccd_max = Pixel[row];
                                                 
                                                 if(Pixel[row]<ccd_mix)     // 128点中最小值
                                                   ccd_mix = Pixel[row];          
                                         }
                                        ccd_maxhmix=  (ccd_max+ccd_mix)/2;
                                        if(ccd_maxhmix<90) {
                                          ccd_maxhmix=90;
                                        }
// ****** ******* 采用最大值最小值作为阀值    二值化    **********************/                       
                  for(row=0;row<128;row++)            //  二值化
               {
                        if(Pixel[row]>ccd_maxhmix)     //   以中间值作为阀值
                            Pixel[row]=1;
                        else  
                            Pixel[row]=0;
                                         }   
// ****************** ******* 二值化    **********************************/                       
                /*           for(row=0;row<128;row++)            //  二值化
               {
           if(Pixel[row]>PixelAverageValue)      //  PixelAverageValue 128点平均值 通过128个点的平均值确定阀值
                                                       Pixel[row]=1;
                                                    else  
                                                       Pixel[row]=0;
                                         }  */
// ************************去噪声*********************************/         
                    for(row=0;row<128;row++)             //  去噪声
                 {
                       if(Pixel[row]==0){          //  去噪声为0的时候
                         if((Pixel[row-1]==1)&&(Pixel[row+1]==1))
                             Pixel[row]=1;
                       }
                   
                     if(Pixel[row]==1){            //  去噪声为1的时候
                       if((Pixel[row-1]==0)&&(Pixel[row+1]==0))
                           Pixel[row]=0;
                     }
                                 }




如有更好的想法,加飞卡交流群: 79463909   大家一起学习交流      
也请大神过来赐教,大家一起学习交流

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

8

主题

37

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1056
威望
514
贡献
294
兑换币
326
注册时间
2014-6-21
在线时间
124 小时
毕业学校
在读
2#
 楼主| 发表于 2015-4-23 11:17:45 | 只看该作者
传上来后,页面大小变了,代码有点乱,大家凑合看下,如有疑问,进群聊
回复 支持 反对

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
3#
发表于 2015-4-23 11:26:48 | 只看该作者
也是一个不周全的方案,先选择阈值后滤波,你可能就把干扰选进去了。
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1056
威望
514
贡献
294
兑换币
326
注册时间
2014-6-21
在线时间
124 小时
毕业学校
在读
4#
 楼主| 发表于 2015-4-23 11:45:25 | 只看该作者
zhou1994 发表于 2015-4-23 11:26
也是一个不周全的方案,先选择阈值后滤波,你可能就把干扰选进去了。

如果用上一个滤波后采集值的话,会导致滞后,只能在给阈值做一个限制。你还有神马好的见解吗?
回复 支持 反对

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
5#
发表于 2015-4-23 11:55:51 | 只看该作者
startstart 发表于 2015-4-23 11:45
如果用上一个滤波后采集值的话,会导致滞后,只能在给阈值做一个限制。你还有神马好的见解吗?

没什么好的见解。 不懂ccd的处理。
回复 支持 反对

使用道具 举报

20

主题

572

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3501

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

威望
1767
贡献
1086
兑换币
1086
注册时间
2014-5-3
在线时间
324 小时
毕业学校
江苏科技大学
6#
发表于 2015-4-23 12:34:25 | 只看该作者
为什么有两种二值化?一种是阈值是最大最小平均值,一种是128像素平均值?
回复 支持 反对

使用道具 举报

8

主题

205

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1115
QQ
威望
468
贡献
411
兑换币
282
注册时间
2014-12-14
在线时间
118 小时
毕业学校
河北大学工商学院
7#
发表于 2015-4-23 21:49:22 | 只看该作者
这种二值化的方法不是很好,也不准确,余弦效应不可避免,还有就是最大值最小值只取一组有可能会出现误差,万一最大值是个噪点呢,最起码得再取一组次大值次小值取平均
回复 支持 反对

使用道具 举报

8

主题

205

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1115
QQ
威望
468
贡献
411
兑换币
282
注册时间
2014-12-14
在线时间
118 小时
毕业学校
河北大学工商学院
8#
发表于 2015-4-23 21:51:16 | 只看该作者
去噪声的时候只出现两个点,也应该算是噪声
回复 支持 反对

使用道具 举报

0

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
665
QQ
威望
335
贡献
206
兑换币
213
注册时间
2015-9-12
在线时间
62 小时
毕业学校
巢湖学院
9#
发表于 2016-5-23 23:13:51 | 只看该作者
取最大值不准确,我们的最大值会跳变到255
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-31 12:42 , Processed in 0.045971 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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