INF2310 vår 2011 - 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 bruk av f.eks. 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 gråtonetransform

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? Hint/fremgangsforslag: Hva er bildets standardavvik, sigma? Anta at histogrammet likner en Gauss-funksjon (har klokkeform), og skisser histogrammet.
  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 ville 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 kunne bli klipt?

Oppgave 4 - Programmering av lineær gråtonetransform

Programmer et Matlab-program som utfører en lineær gråtonetransform 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 om vi visuelt skulle 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 - Sanntidseksperimentering med gråtonetransformer

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

Publisert 7. feb. 2011 17:50