109465309 Local Adaptive Thresholding Using Niblack s Technique
-
Upload
septian-rahman-hakim -
Category
Documents
-
view
29 -
download
0
Transcript of 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.
[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');
[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…