Matlab Untuk Pengolahan Citra

28,611 views
28,300 views

Published on

Matlab Untuk Pengolahan Citra Digital

Published in: Technology
12 Comments
8 Likes
Statistics
Notes
No Downloads
Views
Total views
28,611
On SlideShare
0
From Embeds
0
Number of Embeds
1,281
Actions
Shares
0
Downloads
1,950
Comments
12
Likes
8
Embeds 0
No embeds

No notes for slide

Matlab Untuk Pengolahan Citra

  1. 1. Arif Hidayat [email_address] http://www.hidayat.web.id
  2. 2. Citra adalah Matrix <ul><li>Pada domain spasial, Citra adalah fungsi intensitas pada koordinat tertentu (x,y) </li></ul><ul><li>sehingga citra bisa dianggap sebagai matrix dua dimensi </li></ul><ul><li>atau matrix tiga dimensi pada citra yang memiliki lebih dari satu fungsi nilai (misal RGB) </li></ul>
  3. 3. Membaca Citra <ul><li>kita bisa membaca langsung citra dari file (.jpg,.gif,.png,.tiff) dan menyimpannya sebagai matrix </li></ul><ul><li>perintahnya: </li></ul><ul><ul><li>x = imread(‘namafile’); </li></ul></ul><ul><li>hasilnya adalah matrix 2 dimensi bila grayscale </li></ul><ul><li>atau 3 dimensi bila RGB </li></ul>
  4. 4. Matrix hasil RGB <ul><li>bila kita mambca citra RGB dengan ukuran width x height </li></ul><ul><li>akan menghasilkan matrix tiga dimensi </li></ul><ul><li>dengan jumlah baris:height dan jumlah kolom:width sejumlah 3 </li></ul>
  5. 5. Ekstraksi R, G dan B <ul><li>lenna = imread('lenna.jpg'); </li></ul><ul><li>r = lenna(:,:,1); </li></ul><ul><li>g = lenna(:,:, 2 ); </li></ul><ul><li>b = lenna(:,:, 3 ); </li></ul>
  6. 6. Konversi ke Grayscale <ul><li>bisa dengan fungsi bawaan Matlab: </li></ul><ul><ul><li>gray = rgb2gray(lenna); </li></ul></ul><ul><li>bisa disesuaikan dengan konstanta sendiri: </li></ul><ul><ul><li>gray2 = .3*r + .2*g + .5*b; </li></ul></ul>
  7. 7. Pseudocoloring <ul><li>Gambar grayscale bisa kita buat seoalh2 berwarna dengan pesudo color </li></ul><ul><li>Pseudocoloring dengan colormap </li></ul><ul><li>contoh: </li></ul><ul><ul><li>figure, imshow(r), colormap(jet) , colorbar </li></ul></ul>
  8. 8. Pseudocoloring
  9. 9. Domain Frekuensi <ul><li>Pada Domain freukensi, citra dinyatakan sebagai kombinasi dari gelombang penyusun dengan frekuensi berbeda </li></ul><ul><li>beberapa fungsi untuk domain frekuensi </li></ul><ul><ul><li>fft </li></ul></ul><ul><ul><li>fft2 </li></ul></ul><ul><ul><li>dct </li></ul></ul><ul><ul><li>dct2 </li></ul></ul>
  10. 10. Fast Fourier Transform <ul><li>f = fft2( double(lenna) ); </li></ul><ul><li>f 2 = log(abs( f )); </li></ul><ul><li>imshow(f2(:,:,2),[1 20]); colormap(jet); colorbar </li></ul>
  11. 11. Konversi ke Color space lain <ul><li>Selain RGB pada pengolahan citra terdapat berbagai color space </li></ul><ul><ul><li>YCbCr </li></ul></ul><ul><ul><li>HSV </li></ul></ul><ul><ul><li>IND </li></ul></ul><ul><ul><li>NTSC </li></ul></ul><ul><li>Matlab menyediakan fungsi konversi ini </li></ul>
  12. 12. Konversi ke Citra Biner <ul><li>citra biner adalah citra yang hanya direpresentasikan nilai tiap pixelnya dalam satu bit (satu nilai binary) </li></ul><ul><ul><li>nilai pixel 0 berati hitam </li></ul></ul><ul><ul><li>nilai pixel1 berarti putih </li></ul></ul><ul><li>Konversi dilakukan dengan thresholding pada citra grayscale </li></ul><ul><li>threshold bisa dihitung atau sembarang </li></ul><ul><ul><li>nilai pixel dibawah threshold jadi 0 </li></ul></ul><ul><ul><li>nilai pixel diatas threshold jadi 1 </li></ul></ul>
  13. 13. Konversi ke Citra Biner <ul><li>im = imread(‘japan.png’); </li></ul><ul><li>imgray = rgb2gray(im); </li></ul><ul><li>thresh = graythresh(imgray); </li></ul><ul><li>imbw = im2bw(imgray, thresh); </li></ul><ul><li>figure, imshow(imbw); </li></ul>
  14. 14. Operasi Citra
  15. 15. Histogram <ul><li>membuat histogram dari frekuensi nilai pixel citra </li></ul><ul><ul><li>figure, imhist(r); </li></ul></ul>
  16. 16. Histogram Equalisation <ul><li>melakukan peningkatan kontras pada citra dengan pengaturan histogram </li></ul><ul><ul><li>re = histeq(r); </li></ul></ul>
  17. 17. Morphological Image Processing <ul><li>adalah pengolahan citra yang berhubungan dengan bentuk dan struktur </li></ul><ul><li>contohnya: </li></ul><ul><ul><li>dilasi </li></ul></ul><ul><ul><li>erosi </li></ul></ul><ul><ul><li>object counting </li></ul></ul>
  18. 18. Structuring Element <ul><li>adalah matrix yang digunakan untuk MIP </li></ul><ul><li>se = strel(‘bentuk’, ukuran) </li></ul><ul><li>Contoh: </li></ul><ul><ul><li>se1 = strel('square',11) % 11-by-11 square </li></ul></ul><ul><ul><li>se2 = strel('line',10,45) % line, length 10, angle 45 degrees </li></ul></ul><ul><ul><li>se3 = strel('disk',15) % disk, radius 15 </li></ul></ul><ul><ul><li>se4 = strel('ball',15,5) % ball, radius 15, height 5 </li></ul></ul>
  19. 19. Dilasi <ul><li>imdil = imdilate(imbw,se); </li></ul>
  20. 20. Erosi <ul><li>imer = imerode(imbw,se) </li></ul>
  21. 21. Object Counting <ul><li>menghitung jumlah object berdasar konektifitas tertentu </li></ul><ul><li>bisa 4-conn atau 8-conn </li></ul><ul><li>[labeled,numObjects] = bwlabel( im bw,4); </li></ul><ul><ul><li>misal pada ‘japan.png’ ada 20 object </li></ul></ul>
  22. 22. Labeling Object <ul><li>variabel lebeled tadi adalah citra binary yang sudah dilabeli tiap object berdasarkan konektivitasnya </li></ul><ul><li>kita bisa menampilkannya dengan pseudocolor dengan label warna berbeda per object </li></ul><ul><ul><li>im label = label2rgb(labeled, @spring, 'c', 'shuffle'); </li></ul></ul>
  23. 23. Labeling Object

×