INF2310 vår 2010- UKEOPPGAVER 3

Disse oppgavene omhandler histogrammer og parametriske gråtonetransformasjoner.

Oppgave 1 - Histogrammer
Anta at vi har et 512 x 512 bilde med 256 trinn i gråtoneskalaen. Bildet inneholder i utgangspunktet bare en "bakgrunn" med klar trend, slik at intensiteten er jevnt økende fra venstre til høyre kant i bildet, og slik at bakgrunnsintensiteten er 100 i hele venstre kant av bildet og at den øker jevnt horisontalt til 163 i hele høyre kant av bildet.

  1. Forklar og skisser på papiret hvordan histogrammet og det normaliserte histogrammet for et slikt bilde ser ut.
  2. Anta nå at en mørk tekst legges oppå denne bakgrunnen. Tekst-pikslene dekker 1/4 av bildet, og hvert tekst piksel har en gråtone som er 25 gråtonetrinn lavere enn den lokale bakgrunnen. Forklar og skisser hvordan histogrammet ser ut for bilde med bakgrunn pluss tekst.

Oppgave 2 - Programmering av histogramfunksjon
I Matlab kan man få tilgang til et bildes histogram ved feks. funksjonene imhist og hist (h = hist(bilde(:), 0:255);). Programmer ved hjelp av for-løkker din egen versjon av histogramfunksjonen. Du kan anta at input-bildet inneholder positive heltall.

Oppgave 3 - Lineær transform
Anta at et bilde har middelverdi lik 100 og varians lik 400, altså m=100 og sigma^2=400.

  1. Hvis bildet var lagret som et 8-bits helltallsbilde, hva ville du kunne si om "lysheten/mørkheten" og kontrasten til bildet?
  2. Hvis hovedvekten av pikselene lå i intervallet [50,150] og du ville benytte en lineær transform for å maksimere kontrasten i dette intervallet, og bildet skulle lagres som 8-bit, hva ville koeffisientene i transformen være?
  3. Hvis bildet blir sendt igjennom gråtonetransformen, g(x,y) = 2*f(x,y) + 10, hva blir det transformerte bildets middelverdi og varians?
  4. Hvis jeg ønsker at bildet skal ha m=128 og sigma=64, hvilken lineær transform kunne jeg benyttet?
  5. Hvis bildet hadde et tilnærmet Gaussisk (normalfordelt) histogram, og jeg skulle lagre bildet som 10-bits heltallsverdier, hvilken lineær transform ville du valgt om kun ca 5% av pikslene ville bli klipt?

Oppgave 4 - Programmering av lineær transform
Programmer et Matlab-program som utfører en lineærtransform slik at bildets middelverdi og standardavvik blir endret til satte parametre, henholdsvis m_t og sigma_t. Prøv programmet med flere forskjellige input-parametre. Studer resultatbildenes histogrammer.

Oppgave 5 - Ikke-lineære transformer

  1. Tegn og forklar hvordan de følgende gråtonetransformene endrer kontrasten i bildet: Logaritmisk, eksponentiell og kvadratrotskalering.
  2. Anta at et bildes piksler hovedsakelig består av lavintensitets-piksler, og spredningen mellom histogramsøylene økte med økt intensitet. Hvilken av de nevnte transformene ville du benyttet for å gjøre kontrasten i bildet bedre for oss å tolke bildet?
  3. Hvis monitoren din har en sammenheng mellom pikselverdier og visningsintensitet som beskrevet i ligning (3.2-3) med gamma=5, hvilken gråtonetransform ville kunne kompensert for denne avbildningsfeilen?

Oppgave 6 - Enkel eksperimentering med gråtonetransformer
Benytt Java-appleten under http://www.imageprocessingbasics.com/image-graylevel-transforms/ til å gjøre deg kjent med effektene av parametrene i den linære transformen, og hvilken effekt den logaritmiske og exponentielle transformen har på både selve bildet og histogrammet.