中值滤波器
我們前面提到,使用平均操作或加權(quán)平均操作可以降低圖像的噪聲,并由此引出了空間濾波器的概念。
這種平均操作或加權(quán)平均操作的空間濾波器,根據(jù)平均操作的特點,可以叫做均值濾波器。均值,就是平均值得意思。我們在《統(tǒng)計學-掌握數(shù)據(jù)的總體狀態(tài)》 中知道,對數(shù)據(jù)的統(tǒng)計有平均值,還可以有中位數(shù)。例如一組數(shù):50,60,17,6,80,90,25。其平均值是:(50+60+17+6+80+90+25)/=46.86。而中位數(shù)就是將數(shù)據(jù)排序,取最中間的值。從小到大排序是:6,17,25,56,60,80,90,中位數(shù)是56。
那么我們可不可以取圖像中像素點領(lǐng)域區(qū)域的中位數(shù)的值來代替這個像素點的值呢?而不是領(lǐng)域區(qū)域的平均值。
相對于均值濾波器,這種濾波器稱為中值濾波器。因為中位數(shù)的值又稱為中值。
我們來看看效果,下圖是一張被椒鹽噪聲污染后的電路板圖像(圖像來自岡薩雷斯的《數(shù)字圖像處理》)。
這里直接使用了opencv的均值模糊和中值模糊函數(shù)。
import cv2board_saltpep = cv2.imread("board_saltpep.tif", 0)mean_blur = cv2.blur(board_saltpep, (3, 3)) median_blur = cv2.medianBlur(board_saltpep, 3)cv2.imshow("mean_blur", mean_blur) cv2.imshow("median_blur", median_blur) cv2.waitKey()輸出結(jié)果:
可以看出,中值濾波比均值濾波效果要好的多。一般對于椒鹽噪聲來說,中值濾波器的使用非常有效,要比均值濾波更適合于去除椒鹽噪聲。這是因為均值濾波時,將噪聲點成分放入了平均計算中,所以輸出受到了噪聲的影響;而中值濾波中,椒鹽噪聲的值要么是0,要么是255,在區(qū)域中選中位數(shù)的話,根本就選不上,所以在過濾椒鹽噪聲時能夠有更好的效果。
那么既然有均值濾波器、中值濾波器,很自然的就能想到能不能用最大值、最小值做濾波器,這當然是可以的。可以推斷,最大值濾波器選用的是領(lǐng)域區(qū)域中的最大亮度值,那么對于胡椒噪聲(黑點),顯然具有較好的過濾性;最小值濾波器選用的是領(lǐng)域區(qū)域中的最小亮度值,那么對于鹽粒噪聲(白點),顯然具有較好的過濾性。
當然,你能很快推斷出最大值濾波器對鹽粒噪聲效果不好,最小值濾波器對胡椒噪聲效果不好。那既然是這樣,直接用中值濾波器就好了。事實上中值濾波器比最大值濾波器和最小值濾波器使用廣泛的多。在opencv中甚至都沒有關(guān)于最大值濾波器和最小值濾波器的函數(shù)。
中值濾波器、最大值濾波器、最小值濾波器等這類利用了統(tǒng)計特性的濾波器統(tǒng)稱為統(tǒng)計排序濾波器。
總結(jié)
- 上一篇: 苹果电脑快捷键有哪些?mac系统快捷键大
- 下一篇: HTML5 新标签总汇