INF2310 v�r 2010 - UKEOPPGAVER 12

Disse oppgavene omhandler segmentering ved terskling.

Oppgave 1 - Generell gr�toneklassifikasjon til forgrunn/bakgrunn
Her f�lger litt Matlab-kode for � f� dere i gang. Den laster inn et bilde av en lys tekst p� m�rk bakgrunn. (Bildet ligger p� det vante stedet.)

%% Load a "clean" image
im_clean = imread('textImage_clean.png');
im_clean = double(im_clean);
[N M] = size(im_clean);

%% Add some noise
noiseStd = 30; % How much white noise to add
im_noisy = im_clean + noiseStd * randn(N,M);

%% Add varying light-intesity model
lightFactor = 10; % Increasing this increases effect of our varying-light model
lightMask = repmat( ((1:M)-M/2)/M, N, 1);
im_light = im_clean + lightFactor * lightMask;

%% Separate background and foreground pixels using our "clean" image
backgroundPixels = im_noisy(im_clean<150);
foregroundPixels = im_noisy(im_clean>150);

  1. Studer histogrammet til im_clean. For � segmentere ut forgrunn (tekst) fra bakgrunnen ved terskling, hvor ville du lagt terskelen?
  2. Pr�v � endre p� hvor mye st�y som legges til bildet, noiseStd-variabelen, og studer effekten dette har p� resultathistogrammet. Hvordan spiller dette inn p� muligheten for � skille forgrunn fra bakgrunn ved terskling?
  3. Pr�v � endre p� hvor mye av "lyshets-masken" som blir lagt til. Hvilken effekt har dette p� bildets histogram?
  4. Hvor stor kan lightFactor v�re f�r man ikke kan (fullstendig) skille forgrunn fra bakgrunn ved en enkel terskling?
  5. Lag et histogram for bakgrunnspikslene og forgrunnspikslene (h1 og h2) hver for seg. Plot de begge i samme figur. Basert p� dette, hvor ville du lagt terskelen for � segmentere ut forgrunn fra bakgrunn?
  6. Fra h1 og h2 og en gitt terskel t, hvor mange feilklassifiserte piksler (piksler som skulle v�rt satt til bakgrunn, men som som blir satt til forgrunn, og omvendt) ville man f�tt?
  7. Fra h1 og h2, finn de normaliserte histogrammene p1 og p2, samt F og B slik at det (totale) normaliserte histogrammet kan skrives p = B*p1 + F*p2. Se forelesningsnotat s. 10.

Oppgave 2 - Effekten av glatting
Last inn bildet discImage.png. Studer bildets histogram. Utf�r middelverdifiltrering med forskjellige filterst�rrelser. Studer hva slik filtrering gj�r med bildets histogram, og gi en forklaring p� hva du ser.

Oppgave 3 - Terskling i praksis
Implementer Otsus metode, Ridler & Calvards metode (k-means, s. 742 i DIP) , og gj�r deg kjent med f�lgende implementasjon av Niblacks adaptive, lokale metode:

function [ret] = getNiblack(im, n, k)

im_localmean = conv2( im, ones(n,n)/n^2, 'same' );
im_localsquared = conv2( im.^2, ones(n,n)/n^2, 'same' );
im_localstd = ( im_localsquared - im_localmean.^2 ).^0.5;

ret = im > (im_localmean + k*im_localstd);

Eksperimenter med forskjellige parametre til Niblack-algoritmen p� bildene generert fra koden i Oppgave 1. Pr�v forskjellige noiseStd- og lightFactor-verdier. Bland ogs� im_light med im_noisy. N�r er det n�dvendig � benytte lokale metoder for � f� godt resultat?