You are on page 1of 6

[digital image processing]

Jan. 4

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 mulai
dari sampai .

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 dengan
menggunakan rumus

() =

4. Hitunglah rerata intensitas global, mG, menggunakan rumus

5. Hitunglah varians antar kelas (between-class variance), (), untuk k=0,1,2 ... L-1 dengan
menggunakan rumus

[ () ()]
() =
()[1 ()]

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 )

Perlu diingat kembali bahwa nilai k adalah pada saat () maksimum.

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

You might also like