請問中值濾波與均值濾波各自的優缺點?


請問中值濾波與均值濾波各自的優缺點?

文章插圖
均值濾波和中值濾波的內容非?;A,均值濾波相當于低通濾波,有將圖像模糊化的趨勢,對椒鹽噪聲基本無能為力 。中值濾波的優點是可以很好的過濾掉椒鹽噪聲,缺點是易造成圖像的不連續性 。通過下面三張圖可以清楚看到以上兩種濾波方法的差異 。
原圖是含有椒鹽噪聲的圖像
利用中值濾波處理后,椒鹽噪聲幾乎完全被去除掉
利用均值濾波處理后,椒鹽噪聲被處理成了小的氣泡,但與此同時圖像開始變得模糊 。
拓展資料:
中值濾波是基于排序統計理論的一種能有效抑制噪聲的非線性信號處理技術,中值濾波的基本原理是把數字圖像或數字序列中一點的值用該點的一個鄰域中各點值的中值代替,讓周圍的像素值接近的真實值,從而消除孤立的噪聲點 。方法是用某種結構的二維滑動模板,將板內像素按照像素值的大小進行排序,生成單調上升(或下降)的為二維數據序列 。二維中值濾波輸出為g(x,y)=med{f(x-k,y-l),(k,l∈W)},其中,f(x,y),g(x,y)分別為原始圖像和處理后圖像 。W為二維模板,通常為3*3,5*5區域,也可以是不同的的形狀,如線狀,圓形,十字形,圓環形等 。
均值濾波也稱為線性濾波,其采用的主要方法為鄰域平均法 。線性濾波的基本原理是用均值代替原圖像中的各個像素值,即對待處理的當前像素點(x,y),選擇一個模板,該模板由其近鄰的若干像素組成,求模板中所有像素的均值,再把該均值賦予當前像素點(x,y),作為處理后圖像在該點上的灰度g(x,y),即g(x,y)=1/m∑f(x,y)m為該模板中包含當前像素在內的像素總個數 。
一. 中值濾波:
中值濾波器是一種可以使圖像平滑的濾波器 。它使用濾波器范圍內的像素的中值去代表該范圍內所有的像素 。中值濾波是消除圖像噪聲最常見的手段之一,特別是消除椒鹽噪聲,中值濾波的效果要比均值濾波更好 。
二. python實現中值濾波和均值濾波,并用兩種濾波器對受到椒鹽噪聲污染的圖像進行去噪
import cv2
import numpy as np
# Median filter
def median_filter(img, K_size=3):
H, W, C = img.shape
## Zero padding
pad = K_size // 2
out = np.zeros((H + pad*2, W + pad*2, C), dtype=np.float)
out[pad:pad+H, pad:pad+W] = img.copy().astype(np.float)
tmp = out.copy()
# filtering
for y in range(H):
for x in range(W):
for c in range(C):
out[pad+y, pad+x, c] = np.median(tmp[y:y+K_size, x:x+K_size, c])
out = out[pad:pad+H, pad:pad+W].astype(np.uint8)
return out
# Average filter
def average_filter(img, G=3):
out = img.copy()
H, W, C = img.shape
Nh = int(H / G)
Nw = int(W / G)
for y in range(Nh):
for x in range(Nw):
for c in range(C):
out[G*y:G*(y+1), G*x:G*(x+1), c] = np.mean(out[G*y:G*(y+1), G*x:G*(x+1), c]).astype(np.int)
return out
# Read image
img = cv2.imread("../paojie_sp.jpg")
# Median Filter and Average Filter
out1 = median_filter(img, K_size=3)
out2 = average_filter(img,G=3)
【請問中值濾波與均值濾波各自的優缺點?】 # Save result
cv2.imwrite("out1.jpg", out1)
cv2.imwrite("out2.jpg", out2)
cv2.waitKey(0)
cv2.destroyAllWindows()
三. 實驗結果
可以明顯看出,對于受到椒鹽噪聲污染的圖像,中值濾波往往比均值濾波的去噪效果要好!
四. 參考內容:
https://www.cnblogs.com/wojianxin/p/12500348.html

    推薦閱讀