Prvi domaći - projektivna preslikavanja, do 29.10. u 12:00

3) Naivni, DLT i modifikovani DLT algoritam ++ graficki prikaz

 
Foto de Aleksandar Jakovljevic
3) Naivni, DLT i modifikovani DLT algoritam ++ graficki prikaz
por Aleksandar Jakovljevic - Sábado, 27 Outubro 2018, 10:43
 

Student: Aleksandar Jakovljevic, 156/2015
Programski jezik: Python3.6, biblioteke numpy, matplotlib, math

Uradjeno:
1. Naivni, DLT i normalizovani DLT algoritam

2. Poredjenje matrica

3. Rucno unosenje tacke

4. Graficki prikaz poligona za naivni (4) i DLT+normalizovani DLT (6)

5. Preslikavanje nove tacke

Pokrenemo program i izaberemo tacke rucno. Izracunavaju se matrice za sva tri algoritma i iscratavaju se poligoni za naivni(crni poligon, vidljiv tako sto podebljava crveni poligon i jedna stranica se vidi) i crveni poligon za DLT+normalizovani DLT. Dodatno se iscrtava i duz koja nam ukazuje da nakon svakog preslikavanja dobijamo sliku iste tacke, tj. da se slike razlikuju do na skalar u zavisnosti od toga koja matrica preslikavanja je primenjena. Tacke su skoro kolinearne jer matrica preslikavanja dobijena normalizovanim DLT algoritmom je priblizno blizu svojoj stvarnoj poziciji u koordinatnom sistemu.

Prilog:
1. Tacke i poligon za naivni

2. Tacke i poligoni za naivni(crni poligon) DLT i normalizovani DLT algoritam(crveni poligon)

3. Dobijene matrice, tj celokupan izlaz

4. Matrice preslikavanja za 4 korespodencije za sva cetiri algoritma

5. Matrice preslikavanja za 6 korespodencija za DLT i normalizovani DLT algoritam


6. Kod

 

Zapazanja: Algoritami daju isti rezultat za 4 tacke, dok za 6 tacaka DLT i normalizovani DLT daju razlicitu matricu od naivnog algoritma. OSim toga, DLT i normalizovani DLT daju matrice koje se razlikuju na drugoj decimali, zbog osobina normalizovano DLT algoritma.

 

Tacke:

A = [-3,1]
B = [-1,1]
C = [-0,-1]
D = [-2,-2]
E = [-4,-0.5]
F = [-4,0]


Ap = [3,2]
Bp = [5, 3]
Cp = [6, 5]
Dp = [5,7]
Ep = [4,7]

Fp= [3,4]