Professional Documents
Culture Documents
Bernsen juga mengembangkan teknik untuk pengambangan pada citra grayscale yang bekerja pada area kecil atau lokal. Berbeda dengan teknik yang sudah dipaparkan pada artikel lainnya, Bernsen menggunakan nilai intensitas maksimal dan minimal dari lokal tersebut. Perhitungan untuk nilai ambang batasnya menjadi sederhana. Rumus untuk menghitung nilai threshold , = + 2
Tapi nilai threshold untuk tiap lokal/blok ditentukan berdasarkan selisih dari nilai intensitas maksimum dan minimum nya. Sehingga berlaku ketentuan berikut , = + 2 , >
<
Dengan L adalah nilai contrast threshold nya sedangkan GT merupakan nilai global threshold yang didapat dengan menggunakan nilai Otsu. Nilai L bisa diset dengan nilai tertentu sedangkan nilai GT sendiri dicari dengan menggunakan program Otsu yang sudah pernah saya bahas pada artikel lain. Kelebihan dari metode ini tentu kecepatan prosesnya tapi teknik ini tidak bisa diandalkan bila ada derau pada citra. Teknik ini bisa bekerja baik bila citra yang diberikan sebagai input dalam keadaan cenderung bersih atau bisa dibilang dia hanya mampu toleran pada citra yang noisenya masih sedikit. Pada kasus dengan noise yang besar maka hasil binarisasi menggunakan teknik ini tidak lagi bisa diharapkan. Code program utama
% Bernsen technique clear all; close all; clc; % import Image filename = '6MGYg.jpg'; % filename = 'AntiqueCoins-Karachi-Pakistan-Karachi.jpg'; sour = fullfile(cd, 'images', filename);
[janshendry@gmail.com]
Page 1
I = imread(sour); imshow(I); title('Original Image'); [bar, kol, val] = size(I); if val == 3 gray = rgb2gray(I); else gray = I; end % Bernsen L = 150; % contrast threshold GT = otsuthres(gray); % global threshold box = 5; 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 - .5); bar2 = m + floor(box / 2); kol1 = n - floor(box / 2 - .5); kol2 = n + floor(box / 2); temp = buff(bar1:bar2,kol1:kol2); Imax = max(max(temp)); Imin = min(min(temp)); Ttemp = ( Imax + Imin ) / 2; if Imax - Imin > L T = Ttemp; elseif Imax - Imin < L T = GT; end if buff(m,n) <= T 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
[janshendry@gmail.com]
Page 3
@ thanks
[janshendry@gmail.com]
Page 4