Teori Konvolusi dan Histeq pada Pengolahan Citra

Teori Konvolusi dan Histeq pada Pengolahan Citra
Kali ini saya akan berbagi lagi tentang Pengolahan Citra, terutama tentang Teori Konvolusi dan Histogram Equalization atau sering disebut histeq. Secara umum konvolusi didefinisikan sebagai cara untuk mengkombinasikan dua buah deret angka yang menghasilkan deret angka yang ketiga. Didalam dunia seismik deret-deret angka tersebut adalah wavelet sumber gelombang, reflektivitas bumi dan rekaman seismik.

Secara matematis, konvolusi adalah integral yang mencerminkan jumlah lingkupan dari sebuah fungsi a yang digeser atas fungsi b sehingga menghasilkan fungsi c. Konvolusi dilambangkan dengan asterisk. Sehingga, a*b = c berarti fungsi a dikonvolusikan dengan fungsi b menghasilkan fungsi c.

Salah satu penggunaan teori konvolusi pada pengolahan citra adalah histogram equalization (histeq). 
Sebelumnya saya sudah mencoba menggunakan fungsi histeq yang terdapat pada Matlab, namun fungsi histeq error. Untuk itu saya mencari lagi bagaimana cara melakukan histogram equalization tanpa fungsi histeq, dan berhasil. Setelah mengetahui definisi dari konvolusi, kita akan mencoba mempraktekkannya pada MATLAB

Berikut adalah langkah-langkah yang diperlukan :

1. Buat layout GUI yang terdiri dari 2 axes, 2text, 2button seperti gambar dibawah ini.


2. Klik kanan pada button 'Buka Gambar', klik View Callbacks > Callback

3. Isikan source code untuk tombol "Buka Gambar" seperti dibawah ini:

4. Klik kanan pada button 'Histeq', klik View Callbacks > Callback. Lalu isikan kode berikut :



GIm = handles.data1;
numofpixels=size(GIm,1)*size(GIm,2);
imshow(GIm);
HIm=uint8(zeros(size(GIm,1),size(GIm,2)));
freq=zeros(256,1);
probf=zeros(256,1);
probc=zeros(256,1);
cum=zeros(256,1);
output=zeros(256,1);   

%freq counts the occurrence of each pixel value.
%The probability of each occurrence is calculated by probf.
for  i=1:size(GIm,1)
     for  j=1:size(GIm,2)   
        value=GIm(i,j);
        freq(value+1)=freq(value+1)+1;
        probf(value+1)=freq(value+1)/numofpixels;
     end
end

sum=0;
no_bins=255;

%The cumulative distribution probability is calculated. 
for  i=1:size(probf)
   sum=sum+freq(i);
   cum(i)=sum;
   probc(i)=cum(i)/numofpixels;
   output(i)=round(probc(i)*no_bins);   
end

for  i=1:size(GIm,1)
     for  j=1:size(GIm,2)
             HIm(i,j)=output(GIm(i,j)+1);  
     end   
end

axes(handles.axes2);
imshow(HIm);
handles.data2 = HIm;
guidata(hObject,handles);


figure( 'Position' ,get(0, 'screensize' ));
dat=cell(256,6);
for  i=1:256   
dat(i,:)={i,freq(i),probf(i),cum(i),probc(i),output(i)};      
end

columnname =   { 'Bin' ,  'Histogram' ,  'Probability' ,  'Cumulative histogram' , 'CDF' , 'Output' };
columnformat = { 'numeric' ,  'numeric' ,  'numeric' ,  'numeric' ,  'numeric' , 'numeric' };
columneditable =  [false false false false false false];
t = uitable( 'Units' , 'normalized' , 'Position' , ...
            [0.1 0.1 0.4 0.9],  'Data' , dat, ...
             'ColumnName' , columnname, ...
             'ColumnFormat' , columnformat, ...
             'ColumnEditable' , columneditable, ...
             'RowName' ,[]); 
    subplot(2,2,2); bar(GIm);
    title( 'Sebelum Histogram equalization' );
    subplot(2,2,4); bar(HIm);
    title( 'Sesudah Histogram equalization' );




5. Simpan project. Lalu coba jalankan aplikasi. Hasilnya akan seperti berikut

Coba masukan gambar, dengan menekan tombol Buka Gambar,


Kemudian lakukan histogram equalization dengan menekan tombol histeq, hasilnya akan seperti dibawah ini :


Dari hasil yang terlihat, pada gambar histeq yang bagian gelap terlihat makin gelap dan bagian yang terang terlihat makin terang. Lalu setelah tombol ditekan, selain muncul gambar hasil histeq, akan muncul juga histogram, yang isinya seperti gambar berikut :



Sekian tulisan tentang Teori Konvolusi dan Histeq pada Pengolahan citra tanpa fungsi histeq, semoga membantu. Sampai jumpa di tulisan selanjutnya.

Referensi :  Histogram equalization without using histeq function
Previous
Next Post »

1 komentar:

Tulis komentar
Unknown
AUTHOR
15/8/17 02:36 delete

mas kalo konvolusi buat sharpening image ada ga..?

Reply
avatar

- Kritik dan saran sangat saya nantikan untuk kemajuan blog ini.
- Silakan report, jika ada link yang mati.
- Mohon untuk berkomentar sesuai dengan tema postingan.
- Dilarang berkomentar yang mencantumkan LINK AKTIF.
ConversionConversion EmoticonEmoticon