Python

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.

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 (2+1)×(2+1) adalah seperti gambar dibawah ini.

Gaussian filter Equation - Inpows
Gaussian filter Equation – Inpows

Gaussian filter dengan ukuran 5×5 bisa dilihat pada gambar dibawah.

5x5 Gaussian Filter - Inpows
5×5 Gaussian Filter – Inpows

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.

Tulips Original and Smoothed Gaussian Filter- Inpows
Tulips Original and Smoothed Gaussian Filter- Inpows

 

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

Membuat Email Validation pada Android Kotlin