Smoothing dan Blurring Menggunakan OpenCV Python

1326

Praktek Langsung

Smoothing dan blurring adalah teknik yang digunakan dalam computer vision dan pengolahan gambar untuk menghilangkan noise atau mengurangi detail yang tidak diperlukan dalam gambar. Smoothing digunakan untuk menghaluskan permukaan gambar dengan cara mengurangi fluktuasi piksel yang tidak diinginkan, seperti noise. Sedangkan blurring digunakan untuk menghilangkan detail yang tidak diperlukan dalam gambar dengan cara mencampur piksel-piksel yang berdekatan. Kedua teknik ini digunakan sebagai tahap pre-processing untuk melakukan tugas seperti deteksi tepi (edge detection) atau thresholding.

Beberapa opsi smoothing dan blurring yang umum digunakan dalam computer vision dan pengolahan gambar adalah:

  1. Averaging: digunakan untuk menghaluskan gambar dengan cara mencampur rata-rata piksel-piksel yang berdekatan.
  2. Gaussian Blur: digunakan untuk menghilangkan noise dari gambar dengan cara mencampur piksel-piksel yang berdekatan dengan bobot yang ditentukan oleh fungsi gaussian.
  3. Median Blur: digunakan untuk menghilangkan noise dari gambar dengan cara menggantikan setiap piksel dengan median dari piksel-piksel yang berdekatan.
  4. Bilateral Blur: digunakan untuk menghilangkan noise dari gambar dengan cara mencampur piksel-piksel yang berdekatan dengan bobot yang ditentukan oleh fungsi gaussian dan bobot yang berdasarkan pada perbedaan warna antara piksel.

 

Average Blurring

Berikut ini adalah contoh kode untuk melakukan average blurring pada gambar menggunakan OpenCV:

[dm_code_snippet background=”yes” background-mobile=”yes” slim=”no” line-numbers=”no” bg-color=”#abb8c3″ theme=”light” language=”python” wrapped=”no” height=”” copy-text=”Copy Code” copy-confirmed=”Copied”]

import cv2

# Membaca gambar
img = cv2.imread('image.jpg')

# Mendefinisikan ukuran kernel untuk blurring
kernel_size = (5, 5)

# Menerapkan average blurring
blurred_img = cv2.blur(img, kernel_size)

# Menampilkan gambar asli dan gambar yang sudah di blur
cv2.imshow("Gambar Asli", img)
cv2.imshow("Gambar yang di Blur", blurred_img)

# Menunggu input dari user
cv2.waitKey(0)

# Menutup semua jendela
cv2.destroyAllWindows()

[/dm_code_snippet]

Kode di atas mengambil gambar dengan nama ‘image.jpg’, kemudian mendefinisikan ukuran kernel (5,5) untuk blur. Kemudian kode aplikasikan blur averaging dengan menggunakan cv2.blur(img,kernel_size). Setelah itu, kode menampilkan gambar asli dan gambar yang sudah di blur.

Gaussian Blur

Berikut ini adalah contoh kode untuk melakukan Gaussian blurring pada gambar menggunakan OpenCV

[dm_code_snippet background=”yes” background-mobile=”yes” slim=”no” line-numbers=”no” bg-color=”#abb8c3″ theme=”light” language=”python” wrapped=”no” height=”” copy-text=”Copy Code” copy-confirmed=”Copied”]

import cv2

# Membaca gambar
img = cv2.imread('image.jpg')

# Mendefinisikan ukuran kernel dan standard deviation untuk blurring
kernel_size = (5, 5)
sigma = 0

# Menerapkan Gaussian blurring
blurred_img = cv2.GaussianBlur(img, kernel_size, sigma)

# Menampilkan gambar asli dan gambar yang sudah di blur
cv2.imshow("Gambar Asli", img)
cv2.imshow("Gambar yang di Blur", blurred_img)

# Menunggu input dari user
cv2.waitKey(0)

# Menutup semua jendela
cv2.destroyAllWindows()

[/dm_code_snippet]

Kode di atas membaca gambar dengan nama ‘image.jpg’, kemudian mendefinisikan ukuran kernel (5,5) dan standard deviation (0) untuk blur. Kemudian kode aplikasikan Gaussian blur dengan menggunakan cv2.GaussianBlur(img,kernel_size,sigma). Setelah itu, kode menampilkan gambar asli dan gambar yang sudah di blur. Kemudian kode menunggu input dari user dan menutup semua jendela yang dibuka.

Median Blurring

Berikut ini adalah contoh kode untuk melakukan Median blurring pada gambar menggunakan OpenCV

[dm_code_snippet background=”yes” background-mobile=”yes” slim=”no” line-numbers=”no” bg-color=”#abb8c3″ theme=”light” language=”python” wrapped=”no” height=”” copy-text=”Copy Code” copy-confirmed=”Copied”]

import cv2

# Membaca gambar
img = cv2.imread('image.jpg')

# Mendefinisikan ukuran kernel untuk blurring
kernel_size = 5

# Menerapkan Median blurring
blurred_img = cv2.medianBlur(img, kernel_size)

# Menampilkan gambar asli dan gambar yang sudah di blur
cv2.imshow("Gambar Asli", img)
cv2.imshow("Gambar yang di Blur", blurred_img)

# Menunggu input dari user
cv2.waitKey(0)

# Menutup semua jendela
cv2.destroyAllWindows()

[/dm_code_snippet]

Bilateral Filtering

Berikut ini adalah contoh kode untuk melakukan Bilateral Filtering pada gambar menggunakan OpenCV

[dm_code_snippet background=”yes” background-mobile=”yes” slim=”no” line-numbers=”no” bg-color=”#abb8c3″ theme=”light” language=”python” wrapped=”no” height=”” copy-text=”Copy Code” copy-confirmed=”Copied”]

import cv2

# Membaca gambar
img = cv2.imread('image.jpg')

# Mendefinisikan ukuran kernel dan standard deviation untuk blurring
diameter = 9
sigmaColor = 75
sigmaSpace = 75

# Menerapkan Bilateral Filtering
blurred_img = cv2.bilateralFilter(img, diameter, sigmaColor, sigmaSpace)

# Menampilkan gambar asli dan gambar yang sudah di blur
cv2.imshow("Gambar Asli", img)
cv2.imshow("Gambar yang di Filtering", blurred_img)

# Menunggu input dari user
cv2.waitKey(0)

# Menutup semua jendela
cv2.destroyAllWindows()

[/dm_code_snippet]

 

Smoothing dan blurring adalah dua teknik yang sangat penting dalam computer vision dan pengolahan gambar. Teknik ini digunakan untuk meningkatkan kualitas gambar dan membuatnya lebih mudah dipahami oleh algoritma computer vision. OpenCV, sebuah library yang populer digunakan dalam computer vision, menyediakan beberapa fungsi yang dapat digunakan untuk menerapkan smoothing dan blurring pada gambar. Beberapa teknik smoothing dan blurring yang umum digunakan adalah averaging, Gaussian blur, Median blur, Bilateral Filtering. Dalam artikel ini, kami telah menunjukkan contoh kode untuk menerapkan beberapa teknik ini pada gambar dengan menggunakan OpenCV. Dengan demikian, kita dapat dengan mudah mengaplikasikan smoothing dan blurring pada proyek computer vision kita.

 

comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here