Filter median
Filter median adalah teknik pemfilteran digital nonlinear yang biasa dipakai untuk menghilangkan derau pada citra atau sinyal. Pengurangan derau adalah langkah praolah untuk memperbaiki hasil pada pengolahan selanjutnya (misalnya deteksi pinggiran pada citra). Filter median dipakai luas dalam pengolahan citra digital karena dapat menghilangkan derau sekaligus menjaga pinggiran dalam keadaan tertentu. Selain itu, filter ini juga dipakai dalam pengolahan sinyal digital.
Penjelasan algoritme
suntingCara kerja filter ini adalah menggantikan nilai tiap entri dengan median dari entri-entri tetangga. Pola tetangga-tetangga disebut "jendela" yang bergeser entri demi entri untuk semua sinyal. Untuk sinyal satu dimensi, jendela yang mungkin hanyalah beberapa entri sebelum dan beberapa entri setelahnya. Untuk data dua dimensi atau lebih, jendela harus meliputi semua sumbu dengan jari-jari tertentu.
Contoh satu dimensi
suntingSebagai contoh, dengan jendela ukuran tiga yang berurutan: sebelumnya, dirinya, dan sesudahnya, filter median akan diterapkan untuk sinyal satu dimensi sebagai berikut.
x | 2 | 3 | 80 | 6 | 2 | 3 |
---|---|---|---|---|---|---|
y1 | (2, 3, 80) | |||||
y2 | (3, 6, 80) | |||||
y3 | (2, 6, 80) | |||||
y4 | (2, 3, 6) | |||||
y | 3 | 6 | 6 | 3 |
Penanganan pada ujung
suntingPada contoh di atas, karena tiada nilai yang berada di sebelum entri pertama, nilai entri pertama tetap. Begitu juga untuk entri terakhir yang tidak memiliki entri sesudahnya. Ini adalah salah satu cara untuk menangani entri yang kosong pada ujung-ujung sinyal. Namun, ada cara-cara lain yang mungkin lebih dipilih dalam keadaan tertentu:
- tidak mengolah ujung-ujung sinyal dengan atau tanpa pemangkasan ujung-ujung sinyal atau tepi citra setelahnya;
- mengambil entri dari tempat lain, misal dari ujung satunya (di sisi lain); atau
- memperkecil ukuran jendela pada ujung-ujungnya agar jendelanya terisi semua.
Kode semu untuk dua dimensi
suntingKode semu untuk filter median dua dimensi dapat berupa sebagai berikut:
misalkan I adalah larik dua dimensi berukuran w dan h sebagai nilai awal misalkan T adalah larik dua dimensi berukuran w dan h sebagai nilai hasil misalkan J adalah larik satu dimensi berukuran p × q sebagai jendela tepiX ← bulatkanKeBawah(p / 2) tepiY ← bulatkanKeBawah(q / 2) untuk x dari tepiX sampai w - tepiX, untuk y dari tepiY sampai h - tepiY, i ← 0 untuk fx dari 0 sampai p, untuk fy dari 0 sampai q, J[i] ← I[y + fy - tepiY][x + fx - tepiX] i ← i + 1 urutkan J T[y][x] ← J[p × q / 2]
Algoritme ini hanya mengolah satu saluran dan menggunakan penanganan pertama, "tidak mengolah ujung-ujung sinyal."
Permasalahan dalam implementasi
suntingBiasanya, mayoritas perhitungan dan waktu dihabiskan untuk mencari median tiap jendela. Karena filter harus mengolah tiap entri dalam sinyal, untuk sinyal berukuran besar seperti citra, efisiensi perhitungan median menjadi faktor penting dalam menentukan kelajuan algoritme. Implementasi naif yang dijelaskan di atas mengurutkan entri dalam jendela untuk mencari median. Namun, karena hanya nilai tengah yang dibutuhkan, algoritme seleksi bisa lebih efisien. Terlebih lagi, beberapa jenis sinyal (seringnya untuk citra) menggunakan bilangan bulat sehingga median histogram dapat jauh lebih efisien karena lebih mudah memperbarui histogram dari jendela ke jendela dan pencarian median sebuah histogram tidak terlalu memberatkan.[1]
Sifat penjagaan pinggiran
suntingPemfilteran median termasuk teknik penghalusan seperti pemfilteran Gauss linear. Semua teknik penghalusan efektif dalam menghilangkan derau dalam daerah halus sinyal, tetapi memengaruhi pinggiran. Sering, selain butuh mengurangi derau, pinggiran juga perlu dipertahankan. Pinggiran penting untuk tampilan visual citra, misalnya. Untuk tingkat derau Gauss rendah atau menengah, filter median lebih baik daripada pemburaman Gauss dalam mengurangi derau sekaligus menjaga pinggiran pada jendela berukuran tetap.[2] Namun, kinerjanya tidak lebih baik daripada pemburaman Gauss untuk tingkat derau tinggi. Untuk derau butiran dan derau garam–merica, filter median cukup efektif.[3] Karenanya, filter median dipakai luas dalam pengolahan citra digital.
Lihat pula
suntingReferensi
sunting- ^ Huang, Thomas S.; Yang, George J.; Tang, Gregory Y. (Februari 1979). "A fast two-dimensional median filtering algorithm" (PDF). IEEE Transactions on Acoustics, Speech, and Signal Processing. 27 (1): 13–18. doi:10.1109/TASSP.1979.1163188. Diarsipkan (PDF) dari versi asli tanggal 2022-01-21. Diakses tanggal 2020-10-09.
- ^ Arias-Castro, Ery; Donoho, David L. (Juni 2009). "Does median filtering truly preserve edges better than linear filtering?". Annals of Statistics. 37 (3): 1172–2009. arXiv:math/0612422 . Bibcode:2006math.....12422A. doi:10.1214/08-AOS604 . MR 2509071. Zbl 1160.62086. Diarsipkan dari versi asli tanggal 2020-07-06. Diakses tanggal 2020-10-09.
- ^ Arce, Gonzalo R. (2005). Nonlinear Signal Processing: A Statistical Approach. New Jersey: Wiley. ISBN 0-471-67624-1.