A implementation of boxfilter

boxfilter 是均值滤波的一种改进。在以下这篇blog里面有介绍。

http://www.cnblogs.com/easymind223/archive/2012/11/13/2768680.html

这里我使用matlab对其进行实现。

可是这里边界问题没有处理好,假设viewer有好的意见欢迎告诉我

  1. % % *********************************************************
  2. % code writer : EOF
  3. % code file : my_boxfilter.m
  4. % code date : 2014.10.21
  5. % e-mail : jasonleaster@gmail.com
  6. %
  7. % Code description :
  8. % Here is my implementation of boxfilter :)
  9. % It work correctly in the region where is not close to
  10. % the end boundary but will meet problem on some where
  11. % close to the image end boundary.
  12. % *********************************************************
  13.  
  14. function Filted_Img = my_boxfilter(Image)
  15.  
  16. if size(Image,3) ~= 1
  17. fprintf('ERROR Imput-Image must be ##ONE## channel image\n');
  18. return;
  19. end
  20.  
  21. Height_Img = size(Image,1);
  22. Width_Img = size(Image,2);
  23.  
  24. Buffer = zeros(1,Width_Img);
  25. Filted_Img = zeros(Height_Img,Width_Img);
  26.  
  27. % treat this varible as a constant
  28. SEARCH_WIN_HEIGHT = 10;
  29. SEARCH_WIN_WIDTH = 10;
  30.  
  31. for row = 1: Height_Img
  32. for col = 1: Width_Img
  33.  
  34. sum_value = 0;
  35. if (row + SEARCH_WIN_HEIGHT) < Height_Img
  36.  
  37. for temp = row : (row + SEARCH_WIN_HEIGHT)
  38. sum_value = sum_value + Image(temp,col);
  39. end
  40. else
  41.  
  42. for temp = row : Height_Img
  43. sum_value = sum_value + Image(temp,col);
  44. end
  45. end
  46.  
  47. Buffer(col) = sum_value;
  48. end
  49.  
  50. for col = 1:Width_Img
  51.  
  52. if (col + SEARCH_WIN_WIDTH) < Width_Img
  53.  
  54. for temp = col : col + SEARCH_WIN_WIDTH
  55. Filted_Img(row,col) = Filted_Img(row,col) + Buffer(temp);
  56. end
  57. else
  58. for temp = col : Width_Img
  59. Filted_Img(row,col) = Filted_Img(row,col) + Buffer(temp);
  60. end
  61. end
  62. end
  63.  
  64. end
  65.  
  66. Filted_Img = Filted_Img./(SEARCH_WIN_HEIGHT * SEARCH_WIN_WIDTH);
  67. end

版权声明:本文博客原创文章,博客,未经同意,不得转载。

boxfilter 实现的更多相关文章

  1. 机器学习进阶-阈值与平滑-图像平滑操作(去噪操作) 1. cv2.blur(均值滤波) 2.cv2.boxfilter(方框滤波) 3. cv2.Guassiannblur(进行高斯滤波) 4. cv2.medianBlur(进行中值滤波)

    1.cv2.blur(img, (3, 3))  进行均值滤波 参数说明:img表示输入的图片, (3, 3) 表示进行均值滤波的方框大小 2. cv2.boxfilter(img, -1, (3, ...

  2. opencv3.2.0图像处理之方框滤波boxFilter API函数

    /*.1.方框滤波:boxFilter函数(注:均值滤波是归一化后的方框滤波)*/ /*函数原型: void boxFilter(InputArray src, OutputArray dst, in ...

  3. 图像处理之滤波---滤波在游戏中的应用boxfilter

    http://www.yxkfw.com/?p=7810 很有意思的全方位滤波应用 https://developer.nvidia.com/sites/default/files/akamai/ga ...

  4. 【计算机视觉】极限优化:Haar特征的另一种的快速计算方法—boxfilter

    这种以Boxfilter替代integral image 的方法很难使用到haar.LBP等特征检测中,因为像下面说的,它不支持多尺度,也就是说所提取的特征必须是同一个大小,最起码同一个宽高比的,这一 ...

  5. boxFilter in opencv

    , -),bool normalize=true,int borderType=BORDER_DEFAULT) Smoothes image using box filter Parameters: ...

  6. opencv —— boxFilter、blur、GaussianBlur、medianBlur、bilateralFilter 线性滤波(方框滤波、均值滤波、高斯滤波)与非线性滤波(中值滤波、双边滤波)

    图像滤波,指在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像与处理中不可缺少的操作. 邻域算子,指利用给定像素及其周围的像素值,决定此像素的最终输出值的一种算子.线性邻域滤波器就是一种常 ...

  7. 积分图(三) - Boxfilter 的实现过程分析

    Boxfilter 快速计算 它可以使复杂度为O(MN)的求和,求方差等运算降低到O(1)或近似于O(1)的复杂度,它的缺点是不支持多尺度. Boxfilter 的原理有点类似 Integral Im ...

  8. 学习 opencv---(8)非线性滤波:中值滤波,双边滤波

    正如我们上一篇文章中讲到的,线性滤波可以实现很多种不同的图像变换.然而非线性滤波,如中值滤波器和双边滤波器,有时可以达到更好的实现效果. 邻域算子的其他一些例子还有对 二值图像进行操作的形态学算子,用 ...

  9. 学习 opencv---(7) 线性邻域滤波专场:方框滤波,均值滤波,高斯滤波

    本篇文章中,我们一起仔细探讨了OpenCV图像处理技术中比较热门的图像滤波操作.图像滤波系列文章浅墨准备花两次更新的时间来讲,此为上篇,为大家剖析了"方框滤波","均值滤 ...

随机推荐

  1. docker 现实---中小企业docker环境结构(五)

    docker对于中小企业,设定paas他没有足够的能量,没有必要为,个人二手sandbox实用性和小点.我个人觉得,中小企业可以使用docker要规范发展.测试.生产环境. 他画了一个简单的图表: d ...

  2. 二十7天 春雨滋润着无形 —Spring依赖注入

    6月11日,明确."夏条绿已密,朱萼缀明鲜.炎炎日正午,灼灼火俱燃." IT人习惯把详细的事物加工成的形状一致的类.正是这种一致,加上合适的规范.才干彰显对象筋道的牙感和bean清 ...

  3. CentOS 6 安装Oracle11g

    原创作品.从 "深蓝blog" 博客,欢迎转载,请务必注明转载如下源.否则追究其版权责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/ar ...

  4. mysql计算指定的时间TPS

    <pre name="code" class="sql">有朋友留言,需要监视如早晨在规定时间内9设置18分TPS,写一个10在几秒钟内TPS方法. ...

  5. HTML5之Canvas影片广场

    HTML5之Canvas影片广场 1.设计源代码 <!DOCTYPE html> <head> <meta charset="utf-8" /> ...

  6. 编程算法 - 分割数 代码(C)

    分割数 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 有n个无差别的物品, 将它们划分成不超过m组, 求出划分方法数模M的余数. 比如: n= ...

  7. hdu1004----用java链表实现

    Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  8. android得知----overridePendingTransition

    1 Activity动画是指从一个切换activity跳到另一个activity随着电影. 它由两部分组成:第一部分是一个activity动画出口:中的第二个另一部分activity动画被访问: 于A ...

  9. poj 4088:Set操作

    poj 4088:集合运算 题目:(至于4089.那个问题做过.使用归并思想,所以没有写) 描写叙述 小张须要从一批数量庞大的正整数中挑选出第k小的数.由于数据量太庞大,挑选起来非常费劲,希望你能编程 ...

  10. CentOS构造SNMP

    <span style="font-size:14px;">本文介绍怎样在CentOS环境下配置一个简单的SNMP服务</span> 软件安装 切换到系统管 ...