Show Menu
Cheatography

Mean Noise Filter Cheat Sheet (DRAFT) by

Mean noise filter adalah teknik pengolahan citra yang digunakan untuk mengurangi noise (gangguan atau distorsi) pada gambar dengan cara meratakan nilai piksel dalam suatu area (mask). Filter ini bekerja dengan menghitung rata-rata nilai intensitas piksel di sekitar setiap piksel dalam gambar dan kemudian menggantikan nilai piksel tersebut dengan nilai rata-rata yang telah dihitung.

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Konsep Teori

Mean Noise Filter adalah teknik pengolahan citra yang digunakan untuk mengurangi noise pada gambar dengan menghitung rata-rata nilai piksel dalam sebuah patch. Filter ini mengga­ntikan nilai piksel pusat dengan rata-rata dari piksel­-piksel tetangga untuk mengha­luskan gambar.

1. Library

import cv2
import numpy as np
cv2 adalah library OpenCV yang digunakan untuk pengolahan citra. np adalah alias untuk NumPy, library yang digunakan untuk operasi numerik pada array.

2. Load Image

image = cv2.imread('C:/Kuliah ya ges yak/Semester 3/PCD/Foto/example.jpg')
Fungsi cv2.im­read() digunakan untuk membaca gambar dari path yang diberikan. Path ini menuju ke file gambar yang akan diproses. Setelah gambar dibaca, gambar disimpan sebagai array NumPy dalam variabel image.

3. Initia­lizing Filtered Image

filtered_image = np.zeros_like(image)
Membuat array filter­ed_­image yang berukuran sama dengan gambar aslinya image, tetapi isinya adalah nol. Array ini akan digunakan untuk menyimpan hasil gambar yang telah difilter.
 

4. Kernel Size and Padding Calcul­ation

kernel_size = 3
padding = kernel_size // 2
kernel­_size = 3 berarti kamu menggu­nakan kernel 3x3 (sebuah patch persegi dengan ukuran 3x3 piksel) untuk menghitung rata-rata piksel di sekitar setiap piksel pusat. padding = kernel­_size // 2 menentukan berapa banyak piksel di sekitar tepi gambar yang perlu ditamb­ahkan sebagai "­pad­din­g" agar proses filter bisa bekerja di tepi gambar. Untuk kernel 3x3, padding adalah 1 piksel.

5. Padding Image

padded_image = cv2.copyMakeBorder(image, padding, padding, padding, padding, cv2.BORDER_REFLECT)
Fungsi cv2.co­pyM­ake­Bor­der() digunakan untuk menamb­ahkan padding pada gambar. Dengan padding, ukuran gambar ditambah di setiap sisinya agar saat proses filtering, piksel di tepi gambar tetap bisa dihitung. cv2.BO­RDE­R_R­EFLECT menamb­ahkan padding dengan merefl­eksikan piksel tepi (mirror effect) sehingga hasil filter di tepi gambar tidak terlalu terdis­torsi.

6. Iterating Over Image

for i in range(padding, padded_image.shape[0] - padding):
    for j in range(padding, padded_image.shape[1] - padding):
Dua loop ini berjalan pada setiap piksel dalam gambar yang telah dipadding, kecuali piksel yang ada di luar area padding (loop dimulai dari padding hingga padded­_im­age.sh­ape[0] - padding untuk baris, dan padded­_im­age.sh­ape[1] - padding untuk kolom).

Gambar asli

Gambar penuh noise dengan tepi-tepi yang kasar dan bintik­-bintik acak.
 

7. Extracting Patches for Filtering

patch = padded_image[i-padding:i+padding+1, j-padding:j+padding+1]
Pada setiap iterasi, kamu mengambil sebuah patch berukuran 3x3 (diseb­abkan oleh kernel yang berukuran 3x3) di sekitar piksel yang sedang diproses. Patch ini adalah potongan gambar yang akan digunakan untuk menghitung nilai rata-rata.

8. Applying the Mean Filter

filtered_image[i-padding, j-padding] = np.mean(patch)
Menghitung rata-rata dari nilai-­nilai intensitas piksel dalam patch menggu­nakan np.mean(). Nilai rata-rata ini kemudian digunakan untuk mengga­ntikan nilai piksel di posisi yang sesuai dalam filter­ed_­image.

9. Displaying the Filtered Image

cv2.imshow('Mean Filter', filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.im­show() digunakan untuk menamp­ilkan gambar yang telah difilter dalam jendela bernama 'Mean Filter'. cv2.wa­itK­ey(0) menunggu input dari pengguna sebelum menutup jendela. cv2.de­str­oyA­llW­ind­ows() menutup semua jendela yang dibuka oleh OpenCV.

Output

Gambar asli: Gambar sebelum difilter menunj­ukkan adanya noise, terutama pada area dengan warna seragam.
Gambar hasil filter: Setelah menggu­nakan Mean Noise Filter, gambar menjadi lebih halus dengan noise yang berkurang.

Gambar hasil filter

Gambar lebih halus, bintik­-bintik noise berkurang, dan tepi-tepi menjadi lebih smooth.