Oppgave 1 - Rotasjon og translasjon som én operasjon
Hvis vi skal rotere rundt et bestemt punkt, (x,y), kan vi f?rst forskyve (translatere) bildet slik at det nye origo ligger i (x,y), rotere, for s? ? translatere tilbake. Som vi vet kan disse affine transformene trekkes sammen til én transform, s? ved "enkel" matriseregning:
Oppgave 2 - Interpolasjon
N?rmeste nabo-interpolasjon: f(221.3,396.7) -> f(round(221.3), f(round(396.7)) = f(221,397) = 45.
Biline?r interpolasjon: Fra lysark s. 20, med dx=0.3 og dy=0.7, f?r vi 38.07. Under er en figur som viser hvordan flaten mellom de fire punktene blir ved biline?r interpolasjon.
Oppgave 5 - Affin transform fra tre punktpar
For x-koordinaten:
x1' = a0*x1 + a1*y1 + a2
x2' = a0*x2 + a1*y2 + a2
x3' = a0*x3 + a1*y3 + a2
Tilsvarende blir det for y-koordinaten. Vi kan alts? l?se (a0,a1,a2) og (b0,b1,b2) hver for seg.
import numpy as np x = np.array([10, 100, 200]) y = np.array([10, 100, 100]) xr = np.array([30, 120, 220]) yr = np.array([10, 100, 100]) # Ved bruk av no.linalg.solve-kommandoen: A = np.vstack([x, y, np.ones(3)]).T a = np.linalg.solve(A, xr) b = np.linalg.solve(A, yr) # Alternativ basert p? forelesningsnotat: G = np.vstack([x, y, np.ones(3)]).T M = np.dot( np.linalg.inv( np.dot(G.T, G) ), G.T ) a_ = np.dot(M, xr) b_ = np.dot(M, yr)
Oppgave 6 - Samplingsrate ved resampling
Transformen gir en nedskalering av bildet. En resampling plukker i praksis halvparten av pikslene langs hver akse. Vi f?r en fordobling av avstanden mellom hvert sample. Det vil si, den effektive samplingsperioden fordobles, alts? at den effektive samplingsraten blir halvert. Vi vil kunne f? aliasing-problemer om ikke den nye samplingsraten tilfredstiller kravet gitt i samplingsteoremet.