Menambahkan Salt & Pepper Noise Pada Citra Menggunakan Scikit-image Python – Pada artikel ini, kita akan membahas bagaimana menambahkan Salt & Pepper Noise pada citra menggunakan Scikit-image python. Dengan mempelajari artikel ini juga, kamu dapat mengetahui cara menambahkan Salt & Pepper Noise pada citra. Dengan bantuan library scikit-image, terdapat fungsi builtin yang dapat digunakan untuk menambahkan noise dengan mudah. Simak artikel menambahkan salt & pepper noise pada citra menggunakan scikit-image python untuk memahami lebih lanjut.
Daftar Isi
Pengertian Noise
Noise atau yang kenal dengan derau adalah gambar atau piksel yang mengganggu kualitas dari suatu citra. Derau dapat disebabkan oleh gangguan fisik (optik) pada suatu alat akuisisi yang menyebabkan proses pengolahan yang tidak sesuai. Noise pada suatu citra dapat terjadi karena beberapa sebab.
Efek masing-masing noise tentunya berbeda-beda. Ada efeknya sangat mempengaruhi tampilan citra, tetapi ada juga yang tidak begitu berpengaruh terhadap citra. Noise yang dimaksud disini adalah noise yang terjadi karena karakteristik dari gray-level atau dapat dikarenakan adanya variabel acak yang terjadi karena karakteristik Probability Density Function (PDF).
Beberapa noise yang diakibatkan oleh Probability Density Function antara lain:
- Gaussian Noise
- Speckle Noise
- Salt and Pepper Noise
- Exponential Noise
Disini kita hanya akan membahas mengenai Salt & Pepper Noise.
Penjelasan Salt & Pepper Noise
Salt & Pepper Noise merupakan bintik hitam atau putih yang muncul secara acak dan tidak diinginkan di dalam suatu citra. Bintik acak ini disebut dengan salt & pepper. Salt atau garam merepresentasikan bintik putih dengan nilai piksel 255. Sedangkan, pepper atau lada merepresentasikan bintih berwarna hitam dengan nilai piksel 0. Salt & pepper noise juga dapat disebut sebagai impulse noise. Noise ini dapat disebabkan oleh beberapa hal yaitu dead pixels, analog-to-digital convertion error, bit transformation error dan masih banyak lagi.
Nah, pada artikel ini kita tidak akan membahas lebih dalam mengenai salt & pepper noise tapi kita hanya akan menggunakan fungsi builtin yang terdapat pada scikit-image. Kalian dapat melihat dokumentasi scikit-image untuk mengenal lebih lanjut untuk menggunakan fungsi random_noise.
Kode Python – Salt & Pepper Noise
Berikut ini adalah kode python untuk menambahkan Salt & Pepper Noise menggunakan Scikit-image.
import cv2 import numpy as np from skimage.util import random_noise from matplotlib import pyplot as plt # Load citra yang akan digunakan img = cv2.imread('tulips.jpg') ori_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Menambahkan salt & pepper noise ke citra original. noise_img = random_noise(ori_img, mode='s&p', amount=0.3) # Fungsi diatas menghasilkan citra dengan nilai float # yang berada pada rentang nilai [0,1], sehingga # perlu diubah menjadi format uint8 dengan rentang # nilai [0,255] noise_img = np.array(255 * noise_img, dtype='uint8') # Menampilkan citra dengan noise plt.subplot(121), plt.imshow(ori_img), plt.title('Original Image') plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(noise_img), plt.title('Salt & Pepper Noise Image') plt.show()
Kode Python – Salt Noise
Kamu juga bisa mencoba untuk menambahkan Salt Noise saja tanpa adanya Pepper noise pada suatu citra menggunakan kode Python dibawah ini.
import cv2 import numpy as np from skimage.util import random_noise from matplotlib import pyplot as plt # Load citra yang akan digunakan img = cv2.imread('tulips.jpg') ori_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Menambahkan salt noise ke citra original. noise_img = random_noise(ori_img, mode='salt', amount=0.3) # Fungsi diatas menghasilkan citra dengan nilai float # yang berada pada rentang nilai [0,1], sehingga # perlu diubah menjadi format uint8 dengan rentang # nilai [0,255] noise_img = np.array(255 * noise_img, dtype='uint8') # Menampilkan citra dengan noise plt.subplot(121), plt.imshow(ori_img), plt.title('Original Image') plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(noise_img), plt.title('Salt Noise Image') plt.show()
Kode Python – Pepper Noise
Selain hanya bisa menambahkan Salt Noise, kita juga bisa menambahkan Pepper Noise saja tanpa adanya Salt Noise menggunakan kode Python dibawah ini.
import cv2 import numpy as np from skimage.util import random_noise from matplotlib import pyplot as plt # Load citra yang akan digunakan img = cv2.imread('tulips.jpg') ori_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Menambahkan pepper noise ke citra original. noise_img = random_noise(ori_img, mode='pepper', amount=0.3) # Fungsi diatas menghasilkan citra dengan nilai float # yang berada pada rentang nilai [0,1], sehingga # perlu diubah menjadi format uint8 dengan rentang # nilai [0,255] noise_img = np.array(255 * noise_img, dtype='uint8') # Menampilkan citra dengan noise plt.subplot(121), plt.imshow(ori_img), plt.title('Original Image') plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(noise_img), plt.title('Pepper Noise Image') plt.show()
Hasil yang diperoleh
Dari ketiga kode python diatas, hasil dari masing-masing kode dapat kamu lihat pada gambar-gambar dibawah ini.
Output – Salt & Pepper Noise
Output – Salt Noise
Output – Pepper Noise
Temukan source code python menarik lainnya hanya di Inpows.
Baca Juga
Menambahkan Gaussian Noise Pada Citra Menggunakan Scikit-image Python
Membuat Image Smoothing Menggunakan Gaussian Filter di Python
Membuat Image Smoothing Menggunakan Mean Filter di Python