Monday 22 April 2013

Function (M-file) Negative Citra Matlab

Hari ini ane tiba2 pengen update lagi diblog ini :D .. ya walaupun hanya sekedar corat-coret tapi setidaknya "yang ada manfaatnya" buat diri sendiri dan buat orang lain... postingan ini mungkin agak sedikit berbeda dengan postingan sebelumnya... kalo dilihat dari kategori posting di blog ini cuma ada tutorial pemrograman yang rumpun nya rekayasa perangkat lunak / sistem informasi... kali ini ane akan share sesuatu yang berbeda... yaitu tentang citra digital ... mata kuliah ini adalah salah satu mata kuliah yang ditakuti oleh mahasiswa di kampus ane :D gak tau kenapa, apa karena dosennya yang killer atau karena mata kuliah nya yang agak sulit untuk dipahami... hehee... ya kalo menurut ane si.. ke dua2 nya...
dosennya killer dan mata kuliahnya juga agak sulit untuk di mengerti... hembb... tapi dosen yang itu sudah gak ngajar mata kuliah citra tahun ini, jadi dosennya berbeda... tahun kmaren ane ikut kelas ini karena mantan ane dan ane juga pengen bisa... taun ini ane wajib ngambil -_- padahal ane udah bisa ni matakuliah...
mata kuliah citra ini termasuk dasar dari penjurusan kecerdasan buatan (artificial intelegent)... dan nantinya akan dikembangkan untuk membuat aplikasi2 keren seperti deteksi wajah, deteksi tumor, virtual keyboard... dll ... tapi sayang seribu sayang... ane gak minat sama rumpun yang satu ini... sebenarnya ilmunya unik... bisa membuat aplikasi bahkan sesuatu yang baru.... tapi karena pasar sedang tidak banyak membutuhkan sama penjurusan yang satu ini, maka ane putusin menekuni jurusan yang dicari pasar :D yaitu RPL dan Jaringan... kalo nanti pasar sudah mulai banyak menjamah ke kecerdasan buatan ini maka ane akan perdalam lagi ilmu ini, ane suka si sebenarnya tapi yaaa.. tuntutan kerjanya di RPL dan Jaringan :)
mata kuliah citra dikampus ane dibagi menjadi 3 bagian... untuk yang citra 1 ini lebih banyak membahas enhancement yaitu perbaikan citra... tujuannya adalah untuk meningkatkan kekontrasan suatu citra sehingga citra yang diolah / diproses akan menghasilkan citra baru yang kekontrasannya lebih tinggi ... yang pada akhirnya dapt digunakan untuk memisahkan object - object....
enhancement ini dalam pemrograman citra biasanya tidak berdiri sendiri, maksudnya akan ada proses selanjutnya agar citra ini dapat dimanfaatkan lagi.. misal, untuk mendeteksi wajah harus dilakukan enhancement dulu untuk memperbaiki kekontrasan citra, baru kemudian dilakukan proses lanjutan untuk pendeteksian mana wajah dan mana yang bukan wajahh... Enhancement (perbaikan) mempunyai banyak methode, mulai dari Negative, Gamma Correcton, Brightness, histogram dll... dan inti dari methode2 ini adalah untuk memperbaiki kekontrasan citra :D
seperti judul postingannya yaitu Function (M-file) Negative citra, ane akan kasi contoh functionnya yang murni menggunakan algoritma negative citra, 

Rumus :

S = (L-1) - r

S = nilai citra hasil.
L-1 = gray level tertinggi / color depth
r = nilai citra asli

rumus pengolahan citra negative

kalo ente lihat pada simulasi diatas itu nilai (L-1) adalah 9 .. jadi rumusnya 9 - nilai pixel nya :D ... kalo secara gampangnya proses negativ ini adalah proses dimana sisi gelap dijadikan terang, si gelap dijadikan terang... jadi dibalik gitu....
untuk penerapan di matlab, sebenarnya matlab sendiri sudah menyediakan function nya yaitu "imcomplement"

i = imread('rice.png');
hasil = imcomplement(i);
subplot(1,2,1);imshow(i);title('citra asli');
subplot(1,2,2);imshow(hasil);title('citra hasil negativ');  
diatas itu penerapannya kalo pake function bawaan matlab... tapi rasanya kurang greget kalo kita gak bisa terapin dengan algoritma yang ada :D ... ni ane kasi function yang mengimplementasikan algoritma negative biar greget...
function hasil = NegativeCitra(citra,maxbit)

hasil = citra;

[m,n] = size(citra);

for k = 1:m
    for l = 1:n
        hasil(k,l) = (maxbit-1)-citra(k,l);
    end
end

subplot(2,2,1);imshow(citra);title('citra asli');
subplot(2,2,2);imhist(citra);title('histogram citra asli');
subplot(2,2,3);imshow(hasil);title('hasil citra negative');
subplot(2,2,4);imhist(hasil);title('histogram citra negative');

end  
untuk pemanggilannya ya cukup seperti ini
NegativeCitra(i,256);  
hembbb... ya kira2 seperti itulah penerapan negative dan algoritmanya di function (M-file) matlab... kalo gak ngerti silahkan di coment atau tanya lewat facebook... kalo paham monggo postingannya dilike gitu...  :D ...sekian dulu untuk postingan kali ini... semoga bermanfaat :)

No comments:

Post a Comment