Professional Documents
Culture Documents
Jan. 4
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).
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
() =
3. Hitunglah rerata kumulatif (cumulative mean), m(k), untuk k=0,1,2 ... L-1 dengan
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.
()
() =
Sedangkan,
= (1 )
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';
% 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');
% mendapatkan threshold
val=max(varB);
idx=mean(find(varB==val));
T=(idx-1)/(N-1);
% thresholding
Ii=im2bw(I,T);
figure, imshow(Ii);
title('Otsu Method');
%% 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.
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.