You are on page 1of 3

[digital image processing]

October 9, 2012

LOCAL ADAPTIVE THRESHOLDING USING SAUVOLAS TECHNIQUE

Pada artikel lain sudah dibahas mengenai perbedaan antara local thresholding dan global thresholding. Pada artikel lain pun sudah dibahas contoh jenis dari global thresholding dan local thresholding. Pada artikel ini dan 2 artikel lainnya akan dibahas mengenai teknik-tekni local adaptive thresholding yang cukup popular dan banyak digunakan. Tentu dilatarbelakangi oleh keandalan dari teknik tersebut. Teknik ini dikembangkan oleh Sauvola and Pietikainen (2000) dari teknik Niblack (1986) dimana mereka sama-sama menggunakan nilai statistik dari citra. Local thresholding sendiri bekerja pada area-area kecil atau disebut dengan lokal/blok dalam citra. Jadi proses penentuan nilai threshold dan thresholdingnya bekerja pada blok-blok dalam citra, sebagai contoh adalah blok berukuran 3x3. Biasanya blok ini disebut dengan window (jendela). Teknik ini sangat tergantung pada ukuran jendela/blok nya. Ukuran jendela akan berpengaruh pada kualitas hasil binerisasi (thresholding). Citra yang bekerja untuk teknik ini adalah jenis grayscale (level keabuan). Rumus untuk menghitung nilai threshold menggunakan teknik ini adalah , = , 1+ , 1 ,

T(x,y) merupakan nilai threshold untuk tiap blok, m(x,y) merupakan reratanya sedangkan

adalah nilai standar deviasinya. Nilai k dan R merupakan tetapan atau konstanta. Nilai R adala 128 untuk citra abu-abu (grayscale) dan nilai berada pada rentang [0.2 0.5]. Pada penelitiannya,

Sauvola menggunakan nilai 0.5 begitu juga Sezgin. Kedekatan antara teknik Sauvola dan Niblack terasa pada kondisi dimana terdapat kontras yang tinggi pada blok-blok tersebut, sebaliknya jika kontrasnya rendah maka threshold yang dihasilkan akan jauh berbeda. Dalam teknik ini, nilai Sehingga semakin besar nilai Badekas et al, nilai berfungsi untuk mengontrol nilai threshold lokal.

maka semakin rendah nilai threshold dibandingkan rerata. Menurut

yang paling optimal adalah 0.34. Tentu itu terbatas pada data penelitian yang

mereka gunakan karena secara umum algoritma ini tidak sensitive terhadap perubahan nilai . Satu hal yang perlu diingat dan akan digunakan pada program dalam artikel ini adalah nilai rerata dan standar deviasi yang dihitung adalah untuk tiap-tiap piksel. Jadi jendela tersebut akan bergeser dari kiri ke kanan setiap 1 piksel lalu turun ke bawah hingga semua piksel memiliki nilai threshold

[janshendry@gmail.com]

Page 1

[digital image processing]

October 9, 2012

sendiri. Hal ini akan memberikan hasil yang adaptive tentunya. Tidak ada yang terlalu rumit pada teknik ini, sehingga saya bisa langsung memberikan code program dengan menggunakan Matlab.

% Sauvola technique for local thresholding clear all; close all; clc; % import Citra filename = '6MGYg.jpg'; sour = fullfile(cd, 'images', filename); I = imread(sour); imshow(I); title('Original Image'); [bar, kol, val] = size(I); if val == 3 gray = rgb2gray(I); else gray = I; end % Sauvola R = 128; k = .5; % nilai range .2 - .5 box = 80; % boleh diubah ukuran jendela (box) buff = padarray(gray, [box box], 'symmetric', 'both'); newI = zeros(bar + 2 * box, kol + 2 * box); for m = box + 1 : bar + box for n = box + 1 : kol + box bar1 = m - floor(box / 2); bar2 = m + floor(box / 2); kol1 = n - floor(box / 2); kol2 = n + floor(box / 2); temp = buff( bar1 : bar2, kol1 : kol2 ); rerata = mean2(temp); stdv = std2(temp); Thres = rerata * ( 1 + k * (( stdv / R ) - 1 )); if buff(m, n) <= Thres newI(m, n) = 0; else newI(m,n) = 1; end end end newI = newI(box +1 : bar + box, box +1 : kol + box); figure, imshow(newI); title('Thresholded Image');

[janshendry@gmail.com]

Page 2

[digital image processing]

October 9, 2012

hasil dari eksekusi dari program di atas

Pembahasan tentang teknik Sauvola untuk binarisasi telah usai, semoga bisa membantu. Pada artikel lainnya akan dibahas tentang Niblack yang juga sangat mudah untuk dipahami.

@thanks

[janshendry@gmail.com]

Page 3

You might also like