109465309 Local Adaptive Thresholding Using Niblack s Technique

3
[digital image processing] October 9, 2012 [[email protected]] Page 1 LOCAL ADAPTIVE THRESHOLDING USING NIBLACK'S TECHNIQUE Pada artikel lain sudah dibahas mengenai salah satu teknik local thresholding yakni menggunakan Sauvola. Dalam artikel ini akan dibahas tentang teknik lainnya yakni Niblack. Teknik ini dikembangkan oleh Niblack (1986) dimana dia 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 , = , + ∗ , T(x,y) merupakan nilai threshold untuk tiap blok, m(x,y) merupakan reratanya sedangkan , adalah nilai standar deviasinya. Nilai k merupakan tetapan atau konstanta. Nilai sudah ditetapkan yakni -0.2, yang berbeda sekali dengan teknik Sauvola karena nilai ini selalu positif. Niblack menetapkan nilai optimal untuk ukuran jendela/blok pada penelitiannya yaitu 15. Yang menyebabkan adaptif nya algoritma ini adalah penggunaan standar deviasi lokal. 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 sendiri. Perlu diingat bahwa nilai ukuran jendela sebaiknya ganjil agar bisa bertumpu pada titik tengahnya sehingga nilai threshold akan diberikan pada koordinat (x,y). Tidak ada yang terlalu rumit pada teknik ini, sehingga saya bisa langsung memberikan code program dengan menggunakan Matlab.

Transcript of 109465309 Local Adaptive Thresholding Using Niblack s Technique

Page 1: 109465309 Local Adaptive Thresholding Using Niblack s Technique

[digital image processing] October 9, 2012

[[email protected]] Page 1

LOCAL ADAPTIVE THRESHOLDING USING NIBLACK'S TECHNIQUE

Pada artikel lain sudah dibahas mengenai salah satu teknik local thresholding yakni menggunakan

Sauvola. Dalam artikel ini akan dibahas tentang teknik lainnya yakni Niblack. Teknik ini

dikembangkan oleh Niblack (1986) dimana dia 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

���, �� = ���, �� + ∗ ���, ��

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

adalah nilai standar deviasinya. Nilai k merupakan tetapan atau konstanta. Nilai sudah ditetapkan

yakni -0.2, yang berbeda sekali dengan teknik Sauvola karena nilai ini selalu positif. Niblack

menetapkan nilai optimal untuk ukuran jendela/blok pada penelitiannya yaitu 15. Yang

menyebabkan adaptif nya algoritma ini adalah penggunaan standar deviasi lokal.

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

sendiri. Perlu diingat bahwa nilai ukuran jendela sebaiknya ganjil agar bisa bertumpu pada titik

tengahnya sehingga nilai threshold akan diberikan pada koordinat (x,y).

Tidak ada yang terlalu rumit pada teknik ini, sehingga saya bisa langsung memberikan code

program dengan menggunakan Matlab.

Page 2: 109465309 Local Adaptive Thresholding Using Niblack s Technique

[digital image processing] October 9, 2012

[[email protected]] Page 2

% Niblack technique for local thresholding

clear all; close all; clc;

% import Image filename = '6MGYg.jpg'; % filename = 'AntiqueCoins-Karachi-Pakistan-Karachi.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

% Niblack k = -.2; 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 = double(std2(temp)); Thres = rerata + k * stdv; if double(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');

Page 3: 109465309 Local Adaptive Thresholding Using Niblack s Technique

[digital image processing] October 9, 2012

[[email protected]] Page 3

hasil eksekusi dari program di atas adalah

Anda bisa membandingkan hasil program dari Niblack dan Sauvola. Semoga bermanfaat.

@ thanks…