Senin, 27 April 2015

Operasi Histogram Equalization


Perbaikan citra atau yang biasa disebut image enhancement adalah proses perbaikan kualitas citra atau gambar dengan cara memanipulasi parameter-parameter citra. dengan adanya perbaikan citra maka ciri-ciri khusus yang terdapat di dalam citra lebih ditajamkan. Salah satu operasi perbaikan citra format grayscale adalah histogram equalizationperataanhistogram. Disadur dari http://angeljohnsy.blogspot.com/2011/04/matlab-code-histogram-equalization.html








 











Terlihat bahwa operasi perataan histogram dapat bekerja dengan baik
Buat kamu yang suka mempelajari code nya, penulis membuat code berdasarkan algoritma diatas, tentu menggunakan bahasa functional yaitu python




import cv2
import numpy as np
from  matplotlib import pyplot as plt
#oleh mulkan.ms@gmail.com
#www.softscients.web.id
def perataanHistogram(A):    
    nilai_bin = 255 #angka value pixel maximal!
    A = A+1 #agar terhindari dari pixel bernilai 0
    [frekuensi,value] = np.histogram(A,bins=nilai_bin) #langkah 2
    cumulatif_histogram = frekuensi.cumsum() #langkah 3
    [baris,kolom] = A.shape
    probabilty_frekuensi = np.round((cumulatif_histogram/float(A.size))*nilai_bin) #langkah 4 dan 5
    B = np.empty(A.shape)    
    for i in range(0,baris):
        for j in range(0,kolom):
            B[i,j] = probabilty_frekuensi[A[i,j]-1] #langkah 6
    return B

I = cv2.imread('pohon.bmp')
gray = cv2.cvtColor(I,cv2.COLOR_BGR2GRAY) #ubah ke format gray
hasil = perataanHistogram(gray)
plt.figure('perataan histogram! www.softscients.web.id')
plt.subplot(1,2,1),plt.imshow(gray,cmap='gray'),plt.title('gray')
plt.subplot(1,2,2),plt.imshow(hasil,cmap='gray'),plt.title('perataan histogram')
plt.show() 
Posting Komentar