Matlab... matlab.. matlab... postingan kali ini kembali ane bahas matlab untuk melakukan manipulasi citra, matakuliah yang menurut ane agak sedikit rumit dan wajib untuk dipelajari dikampus ane... -_- karena sebenarnya citra ini masuk dalam rumpun penjurusan, tepatnya pada rumpun AI (Artificial Intelegent) / kecerdasan buatan... sedangkan ane lebih fokus pada bidang RPL (Rekayasa perangkat lunak) ... karena ini tuntutan dari akademik ya ane jalanin ajalah sekalian menambah ilmu, mungkin suatu saat ilmu ini akan berguna dikemudian hari... :D seperti hal nya saat ane mempelajari tentang multithreading ditahun kemarin pada mata kuliah OOP, tapi kegunaannya baru terasa 6 bulan kemudian saat ane dapet project membuat sms gateway multi port yang dijadikan server pulsa... hehehehee...
Ah, udah dulu dah intro nya... :D sekarang ane bahas tentang contrast stretching, apa contrast stretching itu ?? contrast stretching adalah sebuah methode enhancement / perbaikan citra, lebih detailnya contrast stretching adalah methode perbaikan citra yang bertujuan untuk meningkatkan kekontrasan citra dengan memanfaatkan beberapa kondisi.. :D
kalo dilihat secara bahasa contrast streching artinya pengontrasan sepotong-sepotong, maksud nya kita akan mengoperasikan citra sesuai dengan kondisi nya dan kondisinya itu adalah potongan-potongan nilai citra...diagram Contrast Streching |
Rumus Contrast streching Citra :
Rumus Contrast Streching |
Contoh simulasi operasi Contrast streching
simulasi Contrast Streching |
Kalo dilihat dari rumus nya pasti pusing duluan... tapi ya tergantung masing2 individu si... kalo ane si bingung+matasakit... wkwkwkwkwkwk tapi berbeda lagi ketika kita nanti melihat dari segi kode nya, kalo dari kode malah ane paham.. :D ya... begitulah... biar gak panjang lebar, ni ane kasi contoh script contrast streching pengolahan citra di matlab
function hasil = Contrasstectching(citra, r1,r2,s1,s2) citra = im2double(citra); hasil = citra; [m,n] = size(citra); r1 = r1/255; r2 = r2/255; s1 = s1/255; s2 = s2/255; for k = 1:m for l = 1:n if(citra(k,l)<= r1) a = 0; b = r2; c = 0; d = s2; rasio = (b-a)/(d-c); hasil(k,l) = (citra(k,l)-c)*rasio+a; elseif (citra(k,l)>= r1 && citra(k,l)< r2) a = s1; b = s2; c = r1; d = r2; rasio = (b-a)/(d-c); hasil(k,l) = (citra(k,l)-c)*rasio+a; else a = s2; b = 255; c = r2; d = 255; rasio = (b-a)/(d-c); hasil(k,l) = (citra(k,l)-c)*rasio+a; end end end hasil = im2uint8(hasil); 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 contrasstreching'); subplot(2,2,4);imhist(hasil);title('histogram contrasstreching'); enduntuk kode pemanggilan function / m-file matlab nya sepeti ini gan :
Contrasstectching(rgb2gray(imread('E:/citra/biji.jpg')),10,120,0,150);
perlu diperhatikan pada kode pemanggilan function / m-file nya... ane ngambil image/citra yang berdimensi 3 alias RGB ... jadi ane convert dulu jadi grayscale... ente bisa pakai script pemanggilan function / m-file nya dengan menyesuaikan directory citra ente :D ... kemudian kalo ente lihat code yang ada dalam function / m-file nya menurut ane lebih mudah untuk dipahami ketimbang lihat rumus diatas... hehehehe... oia ini hasil dari penggunaan function / m-file diatas
Implemetasi Contrast Streching matlab |
kalo dilihat dari pada hasil citra diatas, gambar hasil operasinya lebih besar contrast nya dari pada citra aslinya, selain itu untuk memanipulasi pixel nya tidak menggunakan operasi yang sama rata, tetapi menggunakan beberapa kondisi, sehingga pengontrasan citra disini lebih efisien, karena memang ada beberapa bagian citra yang perlu sedikit ditingkatkan cerah nya dan ada juga yang perlu banyak peningkatan cerahnya.. :D ... dan itulah contrast streching yang artinya operasi linier sepotong - sepotong :) dan sekian dulu untuk postingan kali ini yang membahas tentang Function (M-file) Contrast Stretching di matlab... semoga bermanfaat ..
No comments:
Post a Comment