INF2310 vår 2010 - UKEOPPGAVER 5

Disse oppgavene omhandler konvolusjon, enkel lineær filtrering, og litt om median-filtrering.

Merk at:

Når vi konvolverer to filterkjerner, vil vi at resultatet skal bli større enn hver av de to filterkjernene, fordi vi gjerne ønsker å bruke denne teknikken til å lage en effektiv implementasjon av filtre.
Når vi konvolverer et bilde med et filter, vil vi vanligvis at ut-bildet skal ha samme størrelse som inn-bildet.

Oppgave 1 - 1D-konvolusjon av to filtre
Vi har gitt et 1D-filter h=[1 2 1]

og et annet filter b=[1 3 4 3 4]

Utfør konvolusjonen (manuelt) og finn resultatet. Beregn konvolusjonen for alle mulige pikselposisjonen. Der hvor vi bare har delvis overlapp, utvider vi med 0-er.

Oppgave 2 - 2D-konvolusjon av to filtre
Vi skal konvolvere et 2D-filter h:

1 1
1 1

med et annet 2D-filter b:

4 1
2 3

Utfør konvolusjonen (manuelt) og finn resultatet. Beregn konvolusjonen for alle mulige pikselposisjoner. Der hvor vi bare har delvis overlapp, utvider vi med 0-er.

Oppgave 3 - Middelverdi
Et bilde glattes med et 3 x 3 middelverdi filter.
Det inneholder fremdeles mye støy, og resultatet filtreres en gang til med samme filter.
Hvilket filter vil gi samme resultat i ett steg?
Er dette filteret separabelt?
Gir en vilkårlig kombinasjon av separable filtre et nytt separabelt filter?

Oppgave 4 - Median-filtrering
Gitt et 10 x 7 binært bilde av bokstavene ``iq''

1 1 1 1 1 1 1 1 1 1
1 0 1 0 0 0 0 0 1 1
1 1 1 0 1 1 1 0 1 1
1 0 1 0 1 1 1 0 1 1
1 0 1 0 1 1 0 0 1 1
1 0 1 1 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1

Utfør 3 x 3 median-filtreringer av dette bildet, der følgende masker skal benyttes (et ``0'' i en maske-posisjon betyr her at det tilsvarende piksel ikke skal være med i beregningen av medianen). Se bort fra rand-effekter (dvs. anvend bare filtret dersom hele filtret faller innenfor bildet, og sett 1 i første piksel innenfor kanten av ut-bildet), og vis resultatene av filtreringen.

a)

1 1 1
1 1 1
1 1 1

b)

0 0 0
1 1 1
0 0 0

c)

0 1 0
0 1 0
0 1 0

Vi har sett at lavpassfiltre er separable i den forstand at vi kan bruke en kolonne-vektor til å lavpass-filtrere i en retning, og så bruke en rad-vektor til å lavpass-filtrere resultatet fra den første filtreringen.
Er median-filtret gitt ved masken a) ovenfor separabelt? Begrunn svaret.
Bruk median-filtrene gitt ved b) og c) ovenfor til å illustrere.

Det kreves kun at man viser hvorvidt filteret i a) kan separeres i filtrene b) og c), ikke to generelle filtre.

Oppgave 5 - Et smartere median-filter?
Vi vet at et ordinært kvadratisk median-filter ikke gir "riktig" verdi for hjørnepiksler og piksler på tynne linjer.

Undersøk om 5 x 5 filtret
median(min(A);min(B);C;max(A);max(B))
der A er de 16 pikslene i den ytre "smultringen" i vinduet,
B er de 8 pikslene i "smultringen" innenfor,
og C er senterpikslet,
tar bedre vare på hjørner, tynne linjer og linjestykker som faller innenfor vinduet.