Membuat Image Smoothing Menggunakan Gaussian Filter di Python
Membuat Image Smoothing Menggunakan Gaussian Filter di Python – Pada artikel kali ini, kita akan membahas bagaimana membuat image smoothing menggunakan Gaussian 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 Gaussian Filter di Python.
Daftar Isi
Mengenal tentang Image Smoothing
Seperti yang telah dijelaskan sebelumnya, Image smoothing merupakan teknik yang terdapat pada pengolahan citra digital yang menggunakan operasi konvolusi antara citra yang masukan dengan low-pass filter kernel yang ditentukan. Citra yang terlihat lebih tajam atau lebih detail jika kita dapat melihat seluruh objek dan bentuk secara benar yang ada di dalamnya. Dengan image smoothing, kita cukup mengurangi tepi atau edge tersebut dan membuat transisi dari satu warna ke warna lain menjadi lebih halus.
Gaussian Filter untuk Image Smoothing
Gaussian filter merupakan suatu teknik yang menggunakan weight kernel yang berada pada arah x dan y serta kita juga harus menentukan nilai sigma. Berbeda dengan mean filter yang menggunakan box filter, pada Gaussian filter kita menggunakan weight kernel. Persamaan Gaussian filter dengan ukuran kernel (2k+1)×(2k+1) adalah seperti gambar dibawah ini.
Gaussian filter dengan ukuran 5×5 bisa dilihat pada gambar dibawah.
Kode Python untuk Gaussian Filter
Berikut ini adalah kode untuk membuat image smoothing menggunakan Gaussian filter di Python.
import numpy as np from matplotlib import pyplot as plt import cv2 img = cv2.imread('tulips.jpg') ori_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) def gaussian_kernel(size, sigma=1): size = int(size) // 2 x, y = np.mgrid[-size:size + 1, -size:size + 1] normal = 1 / (2.0 * np.pi * sigma ** 2) g = np.exp(-((x ** 2 + y ** 2) / (2.0 * sigma ** 2))) * normal return g sigma = 1 size = 5 filtered_img_1 = cv2.filter2D(ori_img, -1, gaussian_kernel(size, sigma)) filtered_img_2 = cv2.GaussianBlur(ori_img, (size, size), 0) plt.subplot(131), plt.imshow(ori_img), plt.title('Original Image') plt.xticks([]), plt.yticks([]) plt.subplot(132), plt.imshow(filtered_img_1), plt.title('Smoothed Image 1') plt.xticks([]), plt.yticks([]) plt.subplot(133), plt.imshow(filtered_img_2), plt.title('Smoothed Image 2') plt.xticks([]), plt.yticks([]) plt.show()
Hasil yang diperoleh
Berikut adalah hasil yang diperoleh dan ditampilkan pada figure menggunakan matplotlib.
Temukan source code python menarik lainnya hanya di Inpows.
Baca Juga
Membuat Image Smoothing Menggunakan Mean Filter di Python
Membuat Kalkulator Sederhana Menggunakan Kotlin
Membuat Password Generator di Kotlin
Membuat Pola Alphabet Bentuk Setengah Pyramid Menggunakan Kotlin