IN2070 v?r 2022 - 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 en klar trend, slik at intensiteten ?ker trinnvis fra venstre til h?yre kant i bildet, og slik at bakgrunnsintensiteten er 100 i hele venstre kant av bildet mens den er 163 i hele h?yre kant av bildet.

  1. Forklar og skisser 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 bildet 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);). I Python kan man f? bildets histogram ved f.eks bruke numpy.histogram fra modulen numpy. Programmer ved hjelp av for-l?kker din egen versjon av histogramfunksjonen. Du kan anta at vi har heltallige pikselverdier mellom 0 og 255.

Oppgave 3 - Line?r gr?tonetransform

Anta at et bilde har middelverdi lik 100 og varians lik 400, alts? μ = 100 og σ^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: 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 μ = 128 og σ = 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 godtas bli klipt?

Oppgave 4 - Programmering av line?r gr?tonetransform

Programmer et Matlab- eller Python-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 skjermen 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 (st?tteoppgave) - Sanntidseksperimentering med gr?tonetransformasjoner

Benytt den interaktive Java-appleten under http://www.imageprocessingbasics.com/image-graylevel-transforms/ til ? eksperimentere med gr?tonetransformer. Gj?r deg kjent med effektene av parametervalgene i spesielt de line?re transformene.

** Merk: Se Ukeoppgaver 1 ang. disse Java-appletene.

Publisert 3. feb. 2022 21:22 - Sist endret 3. feb. 2022 21:22