Python

Membuat Image Smoothing Menggunakan Mean Filter di Python

Membuat Image Smoothing Menggunakan Mean Filter di Python – Pada artikel kali ini, kita akan membahas bagaimana membuat image smoothing menggunakan mean filter di Python. Pembuatan image smoothing menggunakan operasi konvolusi atau convolution antara citra yang diberikan dengan low-pass filter kernel yang telah ditentukan. Simak artikel berikut ini untuk membuat image smoothing menggunakan mean filter di python.

Apakah yang dimaksud dengan image smoothing?

Seperti yang telah dijelaskan sebelumnya, Image smoothing atau blurring merupakan teknik dalam pengolahan citra digital yang melibatkan operasi konvolusi atau convolution antara citra yang diberikan dengan low-pass filter kernel yang telah ditentukan. Nah, citra akan terlihat lebih tajam atau lebih detail jika kita dapat melihat seluruh objek dan bentuk secara benar yang ada di dalamnya.
Misalnya, jika kita memiliki citra wajah akan terlihat lebih jelas saat kita dapat mengidentifikasi mana mata, telinga, hidung, bibir, dll dengan sangat jelas. Hal ini dikarenakan objek tersebut memiliki tepi atau edge. Jadi, pada konsep image blurring atau pengaburan, kita cukup mengurangi tepi atau edge tersebut dan membuat transisi dari satu warna ke warna lain menjadi lebih halus. Image smoothing atau image bluring sangat berguna untuk menghilangkan noise atau gangguan yang terdapat pada suatu citra.

Apakah yang dimaskud dengan kernel?

Pada pengolahan citra digital, suatu kernel merupakan matriks konvolusi atau convolution matrix atau bisa disebut juga mask berisi matriks kecil yang digunakan untuk blurring atau pengaburan, embossing, edge detection atau deteksi tepi, dan masih banyak lagi kegunaannya. Proses ini dilakukan dengan teknik konvolusi antara citra dan suatu kernel. Tentunya, hal ini dapat dilakukan dengan mudah menggunakan fungsi yang terdapat pada OpenCV yaitu cv2.filter2D().

Jenis-jenis filter yang dapat digunakan untuk blurring atau pengaburan citra di Python

Saat kita ingin melakukan pengaburan citra, kita dapat menggunakan spatial filter karena cepat dan lebih mudah untuk mencapai hasil yang diinginkan. Beberapa yang sering digunakan adalah Homogeneous filter atau averaging atau lebih dikenal dengan mean filter, gaussian filter, dan median filter. Akan tetapi, opsi lain yang dapat digunakan juga adalah dengan menggunakan non-linear filter seperti bilateral filter, adaptive bilateral filter, dan lain-lainnya.

Mean/Average/Homogeneous Filter untuk Image Smoothing

Filter ini hanya menggunakan rerata dari seluruh piksel yang berada pada area kernel dan menggantikan elemen pada bagian tengah dengan hasil rerata. Average filter memiliki properti sebagai berikut:

  1. Average filter harus memiliki urutan ganjil
  2. Jumlah keseluruhan elemen harus 1
  3. semua elemen harus sama.

Jika digambarkan dalam bentuk kernel berukuran 3×3 maka akan seperti berikut ini.

mean filter dengan kernel 3x3-Inpows
mean filter dengan kernel 3×3-Inpows

Jika dilihat dari gambar diatas, kernel dengan ukuran 3×3 akan memiliki 9 cell dan kondisi dengan penjumlahan seluruh elemen adalah 1 dapat terpenuhi dengan membagi setiap nilai dengan 9. Seperti ini : 1/9 + 1/9 + 1/9 + 1/9 + 1/9 + 1/9 + 1/9 + 1/9 + 1/9 = 9/9 = 1. Tentunya, ukuran kernel harus positif dan ganjil.

Implementasi kode python untuk membuat image smoothing menggunakan mean filter (kernel 5×5) seperti dibawah ini.

import numpy as np
from matplotlib import pyplot as plt
import cv2

ori_img = cv2.imread('tulips.jpg')


def box_kernel(size):
    k = np.ones((size, size), np.float32) / (size ** 2)
    return k


kernel_size = 5
filtered_img = cv2.filter2D(ori_img, -1, box_kernel(kernel_size))

plt.subplot(121), plt.imshow(ori_img), plt.title('Original Image')
plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(filtered_img), plt.title('Smoothed Image')
plt.xticks([]), plt.yticks([])
plt.show()

Hasil yang diperoleh

Berikut ini adalah citra asli sebelum dan sesudah dilakukan image smoothing atau image blurring menggunakan mean/average/homogeneous filter.

Tulips Original and Smoothed - Inpows
Tulips Original and Smoothed – Inpows

Temukan source code menarik lainnya mengenai python dan pengolahan citra digital hanya di Inpows.

Baca Juga

Membuat Kalkulator Sederhana Menggunakan Kotlin

Membuat Password Generator di Kotlin

Membuat Pola Alphabet Bentuk Setengah Pyramid Menggunakan Kotlin

Membuat Email Validation pada Android Kotlin

Membuat Pola Bintang Setengah Piramid Menggunakan Kotlin