Rabu, 03 Juni 2020

Histogram Citra Dengan Python3


Ditulisan pertama gua sebagai Ilmuwan Gagal, gua mau bahas tentang Histogram Citra, dan gimana sih cara nampilin histogram dari fitur citra. Untuk program yang ditampilin disini ditulis pake Python3 dengan Library Scikit-image.



Menampilkan Histogram Citra


Jadi, apa itu histogram? Apakah platform berbagi foto adalah histogram?
Bukaan, Patrick. Itu bukan histogram..
Berkuda juga bukan histogram.
Baik, histogram adalah diagram yang menggambarkan distribusi frekuensi nilai dari suatu produk, proses atau layanan. Dan yang gua bahas disini adalah Histogram citra, yaitu histogram yang menggambarkan distribusi frekuensi nilai intensitas pixel dalam suatu citra.
Misalkan kita punya gambar di bawah ini:


Kita bisa membuat dan menampilkan histogram dari komponen warna merah, hijau dan biru (RGB) dari gambar di atas dengan program di bawah ini:


from matplotlib import pyplot as plot
from skimage import io
img = io.imread("kura2.jpg") #file program dan gambar di lokasi yang sama

red=img[:,:,0] #baca matriks warna merah
row,col = red.shape
r=red.reshape(row*col)
green=img[:,:,1] #baca matriks warna hijau
row,col = green.shape
g=green.reshape(row*col)
blue=img[:,:,2] #baca matriks warna biru
row,col = blue.shape
b=blue.reshape(row*col)

f,(ax1,ax2,ax3) = plot.subplots(1,3)
n1,bins1,p1 = ax1.hist(r,256,facecolor='red')
ax1.set_title("komponen merah")
n2,bins2,p2 = ax2.hist(g,256,facecolor='green')
ax2.set_title("komponen hijau")
n3,bins3,p3 = ax3.hist(b,256,facecolor='blue')
ax3.set_title("komponen biru")
plot.show()


di program diatas gua pake scikit-image buat baca fitur citra, dan library matplotlib buat plotting grafik histogramnya. Hasilnya di bawah ini:




histogram di atas nampilin sebaran intensitas warna merah, hijau sama biru dari gambar atau citra yang ada di atas tadi.
Kita juga bisa bikin histogram dari gray-scale citra, programnya kaya gini:

from matplotlib import pyplot as plot
from skimage import io
img = io.imread("kura2.jpg",True) # baca citra sbg gray scale
ax = plot.hist(img.ravel(),bins=256)
plot.show()

tampilan hasilnya kaya gini:






Kegunaan Histogram Citra


Di ranah Computer Vision, histogram citra itu bisa dijadiin alat yang berguna buat image thresholding. Nilai threshold ini bisa nanti kita pake buat keperluan Edge Detection, Image Segmentation, terus eeh.. Edge Detection.. dan Image Segmentation.. dan.. pokoknya banyak dah J

Oke, sebenernya masih ada beberapa hal lagi yang pengen gua bahas, tapi nanti aja ya, sambung ditulisan berikutnya. Keburu sore soalnya. Daah..

Tidak ada komentar:

Posting Komentar