Sinopsis
Kalian tentu ingin tahu kan, cara menghitung histogram equalization, kalau hanya menggunakan function tanpa tahu cara kerjanya akan terasa kurang menarik. Fungsi histogram equalization pada matlab, kita kenal dengan histeq()
Namun pada kali ini kita akan membuat script sendiri untuk membuat histogram equalization yang terdiri dari hanya 3 langkah saja.
- menghitung nilai frekuensi yaitu menghitung jumlah kemunculan setiap nilai
- menghitung nilai kumulatif yaitu menghitung kumulatif setiap angka yang didapat
- menghitung nilai probability yaitu menghitung tingkat kemunculan.
Algoritma diatas bila dijabarkan sesuai berikut ini, sebagai contoh mudah histogram equalization, maka ada sebuah array (nilai range nya 1 sampai dengan 5)
Agar mudah, penulis berikan contoh untuk gambar format grayscale seperti berikut ini, kalian bisa pelajari Kode Matlab untuk Menghitung Histogram Equalization sesuai dengan algoritma diatas.
clc;clear all;close all; A = imread('D:/panoramic.jpg'); if ndims(A)==3 A = rgb2gray(A); end %nenghitung distribusi nilai pixel yaitu 0 s.d 255 A = A+1; %%untuk menghindari angka 0 terjadi mn = size(A,1)*size(A,2); bin = 255+1; frekuensi = zeros(1,bin); for i=1:length(frekuensi) jumlah = length(find(A==i)); frekuensi(i) = jumlah; end %menghitung cummulatif dan probabilitnya cumulatif = zeros(1,bin); cum = 0; for i=1:size(cumulatif,2) cum = cum + frekuensi(i); cumulatif(i) = cum; probc(i)=cumulatif(i)/mn; output(i)=round(probc(i)*bin); end output; B = zeros(size(A,1),size(A,2)); for i=1:size(B,1) for j=1:size(B,2) B(i,j) = output(A(i,j))-1; end end A = A - 1; %normalkan lagi B = uint8(B); %casting lagi final = [A,B]; figure, imshow(final),title('Hasil Perbandingan'); return
Bagaimana menurut kalian, apakah script diatas mudah dipahami untuk Menghitung Histogram Equalization. Terlihata hasil distribusi warna yang lebih baik. Sehingga histogram equalization sering digunakan pada enchancement gambar.