INF2310 vår 2019 - 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 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 19, 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.  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.

Publisert 3. feb. 2019 19:49 - Sist endret 3. feb. 2019 19:49