INF2310 vår 2011 - Løsningshint 2

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 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), fround(396.7)) = f(221,397) = 45.

Bilineær interpolasjon: Fra lysark s 16, 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.

x = [10 100 200]';  % x-koordinatene til "fra"-punktene
y = [10 100 100]';  % y-koordinatene til "fra"-punktene
xr = [30 120 220]'; % x-koordinatene til referansepunktene (her: x forskjøvet med 20 piksler)
yr = [10 100 100]'; % y-koordinatene til referansepunktene


% Ved bruk av rref-kommandoen:

X = rref( [x y ones(3,1) xr] );
a = X(:,end)
X = rref( [x y ones(3,1) yr] );
b = X(:,end)


% Alternativ basert på forelesningsnotat:

G = [x y ones(3,1)];
M = inv(G'*G)*G';
a = M*xr;
b = M*yr;

Oppgave 6 - Samplingsrate ved resampling

Transformen gir en nedskalering av bildet (plukker halvparten av pikslene langs hver akse). Vi får en fordobling i 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.

Publisert 28. jan. 2011 14:01