中值滤波
中值滤波介绍
中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为33,55区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。(摘自百度百科)
优点:
中值滤波对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。这些优良特性是线性滤波方法所不具有的,可以很好的过滤掉椒盐噪声。
缺点是易造成图像的不连续性。
中值滤波Python实现
def Median_filtering(image,window_size): #image为传入灰度图像,window_size为滤波窗口大小
high, wide = image.shape
img = image.copy()
mid = (window_size-1) // 2
med_arry = []
for i in range(high-window_size):
for j in range(wide-window_size):
for m1 in range(window_size):
for m2 in range(window_size):
med_arry.APPend(int(image[i+m1,j+m2]))
# for n in range(len(med_arry)-1,-1,-1):
med_arry.sort() #对窗口像素点排序
# print(med_arry)
img[i+mid,j+mid] = med_arry[(len(med_arry)+1) // 2] #将滤波窗口的中值赋给滤波窗口中间的像素点
del med_arry[:]
print("结束")
cv2.imshow("Median_filtering",img)
文章最后发布于: 2019-08-16 15:56:35
相关阅读
泰勒中值定理 条件:f(x)在x=x0领域内(n+1)f(x)在x=x_0领域内(n+1)f(x)在x=x0领域内(n+1)阶可导结论:f(x)=Pn(x)+Rn(x)⟶Pn(x)为主
转自:openCV之中值滤波&均值滤波(及代码实现):https://blog.csdn.net/weixin_37720172/article/details/72627543 在开始我们今天的博
1、模拟滤波器。模拟滤波器分为无源和有源,无源主要由R,L,C构成的,有源主要由运放、电阻、电容构成。无源滤波器结构相对简单,成本较
VIVADO FIR滤波器设计与仿真(一) 最近在学习FPGA DSP相关设计,从滤波器开始学习,最开始先生成两个正弦信号,产生混频信号,通过modelsim
本文转载自:http://www.cnblogs.com/xingshansi/p/6603263.html前言仍然是西蒙.赫金的《自适应滤波器原理》第四版,距离上次看这本