SIMD计算median filter(中值滤波向量化计算)

2017-08-30  本文已影响0人  myth_0c21

1.median filter

是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值.
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为33,55区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。

2.SIMD函数定义

def max(a,b,c):
  return the max value of a,b,c;
def med(a,b,c):
  return the median value of a,b,c;
def min(a,b,c):
  return the min value of a,b,c;

3.Median filter的向量化计算

对于一个3x3的窗口计算中值滤波,该窗口如下所示:

image.png

执行如下操作,完成中值滤波的计算:

1.) x=min(max(a,b,c),max(d,e,f),max(g,h,i))
2.) y=med(med(a,b,c),med(d,e,f),med(g,h,i))
3.) z=max(min(a,b,c),min(d,e,f),min(g,h,i))
median_value  = med(x,y,z)

4.算法解释

中值滤波就是寻找9个数中的一个数,有如下假设:

a<b<c<d<e<f<g<h<i

算法另一种解释

上一篇 下一篇

猜你喜欢

热点阅读