1. Import Library
cv2: Merupakan library OpenCV yang digunakan untuk pengolahan gambar. Fungsinya adalah memanipulasi gambar, termasuk membaca, menampilkan, dan mengolahnya. numpy: Digunakan untuk operasi numerik pada array multidimensi, seperti manipulasi data citra yang diwakili dalam bentuk matriks piksel. 4. Identifikasi Kernel
kernel_size = 5: Menentukan ukuran kernel atau jendela yang digunakan untuk melakukan median filtering. Dalam hal ini, ukuran kernel adalah 5x5. pad = kernel_size // 2: Menentukan ukuran padding (jumlah baris dan kolom di sekitar piksel pusat). Padding digunakan agar jendela kernel dapat diterapkan di setiap piksel. Di sini, padding adalah 2 karena 5 // 2 = 2. 7. Iterasi Setiap Pixel pada Gambar
image.shape[0]: Jumlah baris (tinggi gambar). image.shape[1]: Jumlah kolom (lebar gambar). Loop ini menelusuri setiap piksel dalam gambar, tetapi menghindari bagian tepi (sesuai dengan nilai padding). Hal ini karena kernel 5x5 membutuhkan piksel tetangga di sekitar piksel pusat, dan di tepi tidak ada cukup piksel untuk membentuk jendela lengkap. Foto Sebelum Pemrosesan Kodingan |
2. Reading Dataset
cv2.imread(): Membaca gambar dari file di path yang ditentukan. Gambar akan disimpan sebagai array multidimensi (matriks piksel) dalam variabel image. Jika path atau file salah, None akan dikembalikan. 5. Array Kosong untuk hasil Filtering
np.zeros_like(image): Membuat array dengan ukuran yang sama seperti gambar asli, tetapi diisi dengan nilai 0. Array ini akan menyimpan hasil gambar setelah proses median filtering. 8. Ekstraksi Kernel
image[i-pad:i+pad+1, j-pad:j+pad+1, channel]: Ini mengambil area 5x5 (kernel) di sekitar piksel (i, j) untuk channel yang sedang diproses. flatten(): Mengubah kernel 2D (5x5) menjadi array 1D untuk memudahkan pengurutan dan pengambilan nilai median. Menampilkan Hasil Gambar Asli dan Hasil Median
cv2.imshow(): Menampilkan gambar di jendela baru. 'Original Image': Jendela untuk menampilkan gambar asli. 'Median Filtered Image': Jendela untuk menampilkan gambar hasil filtering. median_filtered_image.astype(np.uint8): Mengonversi tipe data hasil filtering menjadi uint8 (8-bit unsigned integer), yang merupakan format standar gambar untuk ditampilkan. Foto Sesudah Pemrosesan Kodingan |
3. Validasi Gambar Terbaca
if image is None:: Mengecek apakah gambar berhasil dibaca. Jika gambar tidak ditemukan atau gagal dibaca (misalnya karena kesalahan path), program mencetak pesan error. 6. Iterasi Jumlah Channel pada RGB
image.shape[2]: Mengambil jumlah channel pada gambar. Untuk gambar berwarna (RGB), ada tiga channel: biru (B), hijau (G), dan merah (R). Loop ini memastikan bahwa median filtering diterapkan pada setiap channel secara terpisah. 9. Menghitung Median dari Pixel dalam Kernel
np.median(kernel): Menghitung nilai median dari array yang dihasilkan dari kernel. Nilai median ini kemudian ditugaskan sebagai nilai baru untuk piksel (i, j) pada channel yang sesuai dalam gambar hasil. 11. Menunggu dan menutup jendela program
cv2.waitKey(0): Menunggu sampai pengguna menekan tombol untuk menutup jendela gambar. cv2.destroyAllWindows(): Menutup semua jendela yang terbuka setelah waitKey() dieksekusi. |
Noise Removing Method : Median Python Cheatsheet Cheat Sheet (DRAFT) by reehandn
Median filtering adalah salah satu metode populer untuk penghapusan noise dalam pengolahan citra digital. Metode ini bekerja dengan cara menggantikan nilai piksel di posisi tertentu dengan nilai median dari piksel-piksel di sekitarnya dalam jendela atau kernel tertentu. Median filtering sangat efektif dalam mengurangi "salt and pepper noise" atau noise impulsif, yang biasanya ditandai dengan kemunculan titik-titik hitam atau putih pada gambar. Berikut merupakan cheatsheet yang telah dirancang!