Penyaring median

**Penyaring median** adalah teknik penyaringan 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). Penyaring median dipakai luas dalam pengolahan citra digital karena dapat menghilangkan derau sekaligus menjaga pinggiran dalam keadaan tertentu. Selain itu, penyaring ini juga dipakai dalam pengolahan sinyal digital.

## Penjelasan algoritma
Cara kerja penyaring 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
Sebagai contoh, dengan jendela ukuran tiga yang berurutan: sebelumnya, dirinya, dan sesudahnya, penyaring median akan diterapkan untuk sinyal satu dimensi sebagai berikut.

## Penanganan pada ujung
Pada 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

Kode semu untuk penyaring 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]

Algoritma ini hanya mengolah satu saluran dan menggunakan penanganan pertama, "tidak mengolah ujung-ujung sinyal."

## Masalah dalam penerapan
Biasanya, kebanyakan perhitungan dan waktu dihabiskan untuk mencari median tiap jendela. Karena penyaring harus mengolah tiap entri dalam sinyal, untuk sinyal berukuran besar seperti citra, efisiensi perhitungan median menjadi faktor penting dalam menentukan kelajuan algoritma. 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.

## Sifat penjagaan pinggiran
Penyaringan median termasuk teknik penghalusan seperti penyaringan 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, penyaring median lebih baik daripada pemburaman Gauss dalam mengurangi derau sekaligus menjaga pinggiran pada jendela berukuran tetap. Namun, kinerjanya tidak lebih baik daripada pemburaman Gauss untuk tingkat derau tinggi. Untuk derau butiran dan derau garam–merica, penyaring median cukup efektif. Karenanya, penyaring median dipakai luas dalam pengolahan citra digital.

## Referensi