Dokumentáció Küszöbölés A küszöbölés során végighaladunk a képen és minden egyes képpont intenzitásáról eldöntjük, hogy teljesül-e rá az a küszöbölési feltétel. A teljes képre vonatkozó küszöbölés esetében a küszöbszinte(ke)t előre meg kell határozni. A lokális vagy adaptív küszöbölés során a küszöbszintet mindig a statisztika dönti el. A küszöbölés (thresholding) során egy bináris képet kapunk. A küszöbértékek azt határozzák meg, hogy mely intenzitás feletti képpontok lesznek 1-esek, és melyek kapnak 0 értéket. Egyszerű küszöbölés Az egyszerű küszöbölés során a bemeneti szürkeárnyalatos kép minden képpontját összehasonlítják egy intenzitás értékkel, amennyiben nagyobb vagy egyenlő, úgy a képpont értéke 1 lesz, különben 0. %simplethreshold fuggveny, ami a kapott kepet a kapott intenzitas szerint %egyszeruen kuszoboli. % @param img: A bemeneti kep. % @param intensity: A treshold kuszoberteke. 0 es 1 kozotti valos szam % @return: A kuszobolt fekete-feher kep function result = simplethreshold(img, intensity) result = im2bw(img, intensity); Bemeneti kép: Eredmény kép (intenzitás = 0.5):
Sávos küszöbölés A sávos küszöbölés során a bemeneti szürkeárnyalatos kép minden képpontját összehasonlítják két intenzitás értékkel, amennyiben a két érték által határolt tartományba esik, úgy a képpont értéke 1 lesz, különben 0. %Savos kuszoboles %az elso parameter a kep %a masodik es a harmadik pedig a ket intezitas, amelyek kozott a keppont %erteke 1, kulonben 0. function result = bandthreshold(img, min, max) result = im2bw(img, min) - im2bw(img, max); Bemeneti kép: Eredmény kép (min = 0.3, max = 0.7):
Globális küszöbölés (Otsu algoritmussal) Globális küszöbölés során a küszöbölés értéke a teljes képből kerül meghatározásra. Az Otsu algoritmus meghatároz egy küszöb értéket, amelyel egyszerű küszöbölést végrehajtva megkapjuk az eredményt. %Otsu threshold algoritmusa implementalva %A paramtere a kep, a visszateresi erteke pedig az eredmeny kep function result = otsuthreshold(img) level = graythresh(img); result = im2bw(img, level); Bemeneti kép: Eredmény kép (Az Otsu algoritmus eredménye: 0.6275):
Lokális küszöbölés (Niblack algoritmussal) Lokális küszöbölés során az adott intezitás érték mindig az aktuális képpont egy adott környezetéből kerül meghatározásra. Niblack algoritmusa minden képpontra, annak egy adott környezetében (N) meghatároz egy értéket, majd ezen értéket egy adott súllyal (weight) megszorozza, és ez alapján küszöböl. %Niblack algoritmus megvalositasa %A bemeneti parameterek: %img: A bemeneti kep %N: A keppont vizsgalt kornyezete %weight: A szorzo suly function result = niblackthreshold(img, N, weight) img = double(img); ih=histc(img(1:numel(img)), 0:255); bar(ih); localmean = filter2(ones(n), img) / (N * N); localvar = filter2(ones(n), img.^2) /(N * N) - localmean.^2; localstd = sqrt(localvar); t = localmean + weight * localstd; result = img<t; imshow(result, [0 1]); Bemeneti kép: Eredmény kép (N = 31, weight = 0.8):
Optimális küszöbölés Optimális küszöbölés. A küszöbértéket a kép információi alapján optimálisan választja meg. % Iterativ threshold. Optimalis vagas % Bemenet: %img: a bemeneti kep function result = optimalthreshold(img) f = im2double(img); T = 0.5 * (min(f(:)) + max(f(:))); done = false; while ~done g = f >= T; Tn = 0.5 * (mean(f(g)) + mean(f(~g))); done = abs(t-tn) < 0.1; T = Tn; result = im2bw(f,t); Bemeneti kép: Eredmény kép: