函數 > 圖像處理 > 迴旋積分與濾波器 > 範例:中值與分位數濾波
  
範例:中值與分位數濾波
使用 medsmoothgetnoise 求解圖像中每個元素的中值強度 (0.5 分位數),及其 8 個最近的鄰點 (3 x 3 方型核)。medsmooth 函數會傳回濾波過後的圖像,而 getnoise 會傳回原始圖像與濾波圖像之間的差分。
若需要使用者定義的核及分位數而不需要中值,請使用 quantfilt
除了移除雜訊之外,中值濾波也傾向於移除圖片中清晰的小特徵。
如需使用此範例的資訊,請參閱 <關於圖像處理範例>
medsmooth
1. 讀取圖像。
按一下以複製此運算式
2. 在圖像中加入雜訊。
按一下以複製此運算式
按一下以複製此運算式
3. 比較原始圖像及有雜訊的圖像。
(fruit.bmp)
(fruit_n.bmp)
4. 利用 medsmooth 對圖像進行濾波。
按一下以複製此運算式
按一下以複製此運算式
(fruit_f.bmp)
getnoise
此函數會從經過中值濾波後的版本,減去原版的圖像矩陣。
1. getnoise 函數套用至雜訊圖像。
按一下以複製此運算式
按一下以複製此運算式
(fruit_gn.bmp)
getnoise 函數的效果,與減去經濾波之圖像中的雜訊一般。
按一下以複製此運算式
2. 計算並檢視兩張圖像之間的絕對誤差。
按一下以複製此運算式
按一下以複製此運算式
(fruit_an.bmp)
quantfilt
在某些情況下,中值濾波器與 3 x 3 方形核可能不夠普遍到可執行正確的濾波。例如,若以此方式對具有許多銳角的圖像進行濾波,通常會移除稜角的像素。使用具有加號形狀中值濾波核的 quantfilt 函數,而不使用上文指定的一致 3 x 3 核心,避免此效果。
考慮常見圖樣並加入若干雜訊:
1. 讀取圖樣圖像。
按一下以複製此運算式
2. 在圖像中加入雜訊。
按一下以複製此運算式
按一下以複製此運算式
3. 比較原始圖像及有雜訊的圖像。
(pattern.bmp)
(pattern_n2.bmp)
4. 使用中值為 0.5 分位數且有 3 x 3 平方核的 quantfilt 函數,對有雜訊的圖像進行濾波。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
5. 使用中值為 0.5 分位數且有交叉核的 quantfilt 函數,對有雜訊的圖像進行濾波。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
6. 比較這兩個經濾波過後的圖樣。
(pattern_sq.bmp)
(pattern_cr.bmp)
方型核比交叉核降級更多的方邊、線及稜角。
非中值分位數
quantfilt 函數的另一種應用方式,是選擇分位數而不選擇中值 (0.5),如此會改變圖像整體的強度。例如,若選擇 0.0 分位數,會採用像素的最小值及其鄰點;1.0 分位數會提供最大值。(這些都與灰階影像處理的侵蝕及擴張有幾分類似)
1. 分位數設定為 0.0 會造成原始圖樣的黑暗區域擴張,並侵蝕明亮區域。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
2. 分位數設定為 1.0 會造成原始圖樣的明亮區域擴張,並侵蝕黑暗區域。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
3. 比較原始圖樣與其明暗版本。
(pattern.bmp)
(pattern_drk.bmp)
(pattern_lit.bmp)