Anda di halaman 1dari 6

[digital image processing] Jan.

Optimum Global Thresholding Using Otsus Method

Pada artikel terdahulu saya telah menjelaskan mengenai global thresholding dalam pengolahan citra digital. Kali ini saya akan menghadirkan sebuah metode yang disebut sebagai metode Otsu untuk segmentasi berdasarkan histogram citra dengan hasil lebih baik ketimbang menggunakan global threshold biasa. Metode ini disebut optimum karena cara kerjanya yang memaksimalkan varians antar kelas (between-class variance). Varians antar kelas ini cocok digunakan untuk analisa diskriminan kelas secara statistik. Metode Otsu ini didasarkan pada histogramnya. Histogram menunjukkan sebarang nilai intensitas dari tiap piksel pada citra dalam 1 dimensi. Jadi sumbu x biasanya menyatakan level intensitas yang berbeda sedangkan sumbu y menyatakan jumlah piksel yang memiliki nilai intensitas tersebut. Dengan menggunakan histogram kita bisa melakukan pengelompokan terhadap piksel-piksel dalam citra. Pengelompokan ini didasarkan pada nilai ambang batas atau threshold. Nilai threshold ini menjadi objektif atau tujuan dari metode Otsu. Dasar dari metode Otsu adalah perbedaan intensitas dari piksel-piksel yang dipisahkan dalam kelas-kelas tertentu. Sebuah threshold yang mampu memisahkan kelas-kelas sehingga piksel-piksel antar kelas memiliki nilai intensitas yang berbeda maka threshold tersebut dikatakan sudah optimal. Jadi tampak bahwa metode Otsu ini segmentasinya didasarkan pada nilai intensitas dari piksel-piksel pada citra. Dengan mengamati histrogram dari sebuah citra, kita mendapatkan 2 informasi sekaligus yakni jumlah level intesitas yang berbeda (disimbolkan dengan L) dan jumlah piksel-piksel untuk tiap-tiap level intensitas tersebut (yang disimbolkan dengan n(k) dengan k=0...255). Algoritma dari Otsu adalah 1. Hitunglah histogram ternormalisasi dari citra. Simbolkan histogram tersebut sebagai pi, i=0,1,2.... L-1. = Dengan adalah jumlah piksel pada tiap intensitas dan MN adalah jumlah semua dari sampai . mulai

2. Hitunglah jumlah kumulatif (cumulative sum) dari, P1(k), untuk k=0,1,2...L-1 dengan menggunakan rumus

( )=

[janshendry@gmail.com{EE&IT of UGM, Indonesia}]

Page 1

[digital image processing] Jan. 4

3. Hitunglah rerata kumulatif (cumulative mean), m(k), untuk k=0,1,2 ... L-1 menggunakan rumus ( )=

dengan

4. Hitunglah rerata intensitas global, mG, menggunakan rumus = 5. Hitunglah varians antar kelas (between-class variance), menggunakan rumus ( )= [ ( ) ( )] ( )[1 ( )] ( ), untuk k=0,1,2 ... L-1 dengan

6. Pilihlah nilai threshold k yang merupakan indeks dimana nilai varians antar kelas maksimum, ( ) -> max. Jika ternyata terdapat lebih dari satu nilai k maka reratakan saja untuk mendapatkan nilai threshold. 7. Hitunglah separability measurement,

pada k=k dengan menggunakan rumus ( )= ( )

Sedangkan, = (1 ) ( ) maksimum.

Perlu diingat kembali bahwa nilai k adalah pada saat

Dengan menggunakan langkah-langkah di atas maka kita coba untuk membuat programnya.

clear all; close all; clc; % filename='coins.png'; % filename='Fig1027(a)(van_original).tif'; % filename='Fig1038(a)(noisy_fingerprint).tif'; % filename='Fig1050(a)(sine_shaded_text_image).tif'; filename='Fig1060(c)(car removed).tif';

[janshendry@gmail.com{EE&IT of UGM, Indonesia}]

Page 2

[digital image processing] Jan. 4

% % % %

filename='Fig6_palm_of_hand.jpg'; filename='hand.png.bmp'; filename='hand-palm.png'; filename='Kohanim_hands_blessing_photo.jpg';

I=imread(filename); imshow(I); title('Citra Asli'); I2 = im2uint8(I(:)); N=256; [count,x]=imhist(I2,N); figure, bar(x,count); xlabel('variasi level keabuan'); ylabel('jumlah piksel pada level keabuan'); title('Histrogram'); % menghitung nilai histrogram ternormalisasi p=(count/sum(count))'; L=length(x); % menghitung jumlah kumulatif p1k=cumsum(p); % menghitung rerata kumulatif kelas m=cumsum((1:L).*p); % menghitung rerata intensitas global mg=sum((1:L).*p); % menghitung varians antar kelas varB=(mg*p1k-m).^2./(p1k.*(1-p1k)); % mendapatkan threshold val=max(varB); idx=mean(find(varB==val)); T=(idx-1)/(N-1); % menghitung separability measure varG=sum((((1:L)-mg).^2).*p); sm=varB(T*255)/varG; % thresholding Ii=im2bw(I,T); figure, imshow(Ii); title('Otsu Method');

[janshendry@gmail.com{EE&IT of UGM, Indonesia}]

Page 3

[digital image processing] Jan. 4

% uji menggunakan toolbox matlab [level EM]=graythresh(I); I2=im2bw(I,level); figure, imshow(I2); title('Matlab Toolbox - graythresh'); %% end

Lalu setelah mendapatkan nilai ambang batas atau threshold maka kita gunakan untuk segmentasi citra. Perlu diingat bahwa metode Otsu hanya untuk menemukan threshold yang optimum. Teknik segmentasi yang bisa digunakan adalah ( , )= 1 0 ( , )> ( , )

Sekilas anda bisa melihat bahwa hasil segmentasi adalah citra biner yang memiliki nilai intensitas hanya 0 dan 1. Nilai intensitas 0 menyatakan warna hitam (dianggap background) sedangkan nilai intensitas 1 menyatakan warna putih (dianggap foreground atau objek). Dalam program di atas saya menggunakan im2bw sebagai segmentasinya yang notabene juga sama dengan formula yang saya tulis di atas. Saya menggunakan fungsi matlab ini agar segmentasinya cepat karena atensi kita adalah pada penerapan metode Otsu untuk menentukan nilai threshold yang optimal bukan bagaimana cara segmentasinya. Anda bisa saja menuliskan kode program sendiri sesuai dengan formulasi di atas dengan menggunakan if-else untuk tiap piksel dari citra. Perlu juga diingat pada awal program saya menggunakan im2uint8 sebagai konversi dari citra RGB menjadi hanya 2 dimensi biasa yang berukuran 8 bit. Fungsi ini sangat berguna dan eksekusinya cepat. Hasil eksekusi dari program di atas adalah

[janshendry@gmail.com{EE&IT of UGM, Indonesia}]

Page 4

[digital image processing] Jan. 4

[janshendry@gmail.com{EE&IT of UGM, Indonesia}]

Page 5

[digital image processing] Jan. 4

Demikianlah artikel singkat mengenai metode Otsu ini. Semoga bermanfaat untuk anda agar dapat memahami tentang metode ini. Metode Otsu sering juga dikatakan sebagai global thresholding, tetapi lebih tepatnya sebagai optimum global thresholding.

@ trims
Sources: Digital Image Processing 3rd ed. Rafael C. Gonzalez., Richard E. Woods. Pearson Prentice Hall.

[janshendry@gmail.com{EE&IT of UGM, Indonesia}]

Page 6