|
中值濾波
其基本思路是通過濾波器遍歷圖像,取濾波器區(qū)域像素值中值為新的像素值。其中,f(x,y)和g(x,y)分別是原圖像和處理后圖像,(x,y),(s,t)均為像素點坐標。如果是(3*3)的模板,就是對這3*3個像素點的值進行排序,(x,y)取值為排序之后的中值。可以用opencv自帶的函數(shù)medianBlur()實現(xiàn)中值濾波,代碼如下:其運行結(jié)果如下,左圖為加了噪聲的原圖,右圖為中值濾波后的圖。 從上圖可看出,中值濾波可以有效地消除噪聲,并且相對于均值濾波,它能夠更好地保護邊緣信息,圖像的視覺效果更好。當然,也可以逐像素點對圖像進行運算,來求得中值并進行賦值,代碼如下圖所示:其中paixu()是對序列a進行從大到小的排序,median()是求序列a的中值,twotoone()是將列表從二維降到一維,這三個自定義的函數(shù)的目的都是為了求中值。可能有更好的辦法,只是我沒有找到python或者numpy中自帶的求中值的函數(shù),只能自己寫了。
|