Er du ikke ferdig med forrige ukes filtreringsoppgaver? Gj?r disse f?rst!
Oppgave 1 - Implementering av Sobel-operatoren og tilh?rende gradientmagnitude
Du skal i denne oppgaven implementere Sobel-operatoren og tilh?rende gradientmagnitude uten ? bruke noen ferdige programpakker. Bruk det programmeringsspr?ket du selv ?nsker, men velg gjerne MATLAB.
Lag f?rst en funksjon/metode som utf?rer konvolusjonen av et bilde (som er en parameter til funksjonen/metoden) og de to konvolusjonsfiltrene i Sobel-operatoren. For hvert filter skal du alts? programmere at filteret flyttes rundt i alle posisjoner der filteret og bildet overlapper i minst ett piksel. For hver posisjon skal programmet ved hjelp av to for-l?kker l?pe gjennom alle posisjonene i naboskapet og multiplisere filterets vekt i posisjonen med den underliggende verdien i bildet (ignorer posisjoner der filterets vekt ligger over en posisjon utenfor bildet, dette tilsvarer ? behandle bilderandproblemet ved bruk av nullutvidelse). Disse produktene skal adderes sammen og summen skal legges i rett posisjon i et ut-bilde. Resultatet skal v?re to bilder som inneholder gradientkomponenten i x-retning og gradientkomponenten i y-retning. Husk at etter konvolusjonen skal gradientkomponentene v?re positive for kanter der intensiteten ?ker oppenfra og nedover (for x-komponenten) og fra venstre mot h?yre (for y-komponenten) i bildet. Husk ogs? at ut-bildet skal ha fortegn.
Deretter skal du lage en funksjon/metode som produserer et gradientmagnitude-bilde fra de to gradientkomponent-bildene. For hver posisjon skal du alts? kvadrere hver av verdiene i de to produserte bildene, summere kvadratene, beregne kvadratroten av summen og skrive resultatet i et nytt ut-bilde.
Du trenger ikke ? produsere det bildet som inneholder gradientretningene (som for?vrig er gitt ved arctan(gy/gx) hvis du skulle ha lyst til ? implementere dette ogs?).
Du kan teste implementasjonen din ved bruk av bildet mona.png som ligger p? ~inf2310/bilder (tilgjengelig n?r du er logget inn p? UiO-kontoen din i Linux) og:
http://www.uio.no/studier/emner/matnat/ifi/INF2310/v14/undervisningsmateriale/bilder/mona.png