Mladen Canović (i dalje bez indeksa za ovu godinu)
Programski jezik: Python 3.5
Biblioteke: numpy, matplotlib
Urađeno:
- Naivni algoritam;
- DLT algoritam;
- Modifikovani DLT algoritam;
- Grafički prikaz preslikavanja;
- Poređenje dobijenih rezultata na 4 korespodencije, za 6 korespodencija i ispitivanje uticaja šuma na preslikavanja za 6 korespodencija;
- Prikaz nove tačke i njenih slika za odgovarajuće matrice projekcije
Prvi skup tačaka:
A1(1, -1) -> A1'(-3.5, -2.2)
A2(2, 3) -> A2'(-5, -1)
A3(-2, 4.2) -> A3'(-6, 2)
A4(-1, -2) -> A4'(-2, 1)
Dobijene matrice preslikavanja za naivni algoritam, DLT, modifikovani DLT algoritam, njihovo poređenje i grafički prikaz tačke (-4, 1):
Kao što se vidi na slici, sve 3 tačke dobijene preslikavanjem početne (crne tačke) su kolinearne, pa se može zaključiti da se zaista razlikuju do na neko λ ≠ 0 što se, takođe, može zaključiti na osnovu matrica i njihovog odnosa.
Drugi skup tačaka:
A1(-6, 1) -> A1'(4.5, 1)
A2(-7, 0.75) -> A2'(1.5, 2)
A3(-5, 3.3) -> A3'(2.95, 3)
A4(-4.4, 3) -> A4'(6.6, 3)
A5(-2.5, 2) -> A5'(6, 0.75)
A6(-4.1, 0.5) -> A6'(4.2, 0)
Dobijene matrice preslikavanja za DLT, modifikovani DLT algoritam, njihovo poređenje i grafički prikaz tačke (-4, 1):
Vidimo da se matrice razlikuju u odnosu na prvi slučaj.
Treći skup tačaka (sa šumom):
A1(-6, 1) -> A1'(4.5, 1)
A2(-7, 0.9) -> A2'(1.5, 2)
A3(-5, 3.3) -> A3'(3, 3)
A4(-4.4, 3) -> A4'(6.6, 3)
A5(-2.5, 2) -> A5'(6, 0.75)
A6(-4.1, 0.5) -> A6'(4.2, 0)
A2(-7, 0.75) -> A2(-7, 0.9); A3'(2.95, 3) -> A3'(3, 3)
Dobijene matrice preslikavanja za DLT, modifikovani DLT algoritam, njihovo poređenje i grafički prikaz tačke (-4, 1), sa šumom u 2 tačke, A2 i A3':
Vidimo, da iako je šum jako mali, matrice se razlikuju na nekim mestima i na prvoj decimali. Bez šuma, matrice su se manje razlikovale. Sve u svemu, i sa šumom i bez šuma, matrice dobro aproksimiraju projektovanje tačaka, kada je broj tačaka > 4. Sa povećanjem šuma, matrice će se sve više razlikovati.
Deo koda: