Boris Karanovic, 500 / 2017
Programski jezik : C++11, QT5 sa pomocnim bibliotekama Armadillo, QCustomPlot
Uradjeno:
1) Naivni algoritam za 4 korespodencije
2) DLT algoritam za 6 korespodencija
3) nDLT algoritam za 6 korespodencija
4) Graficki prikaz tacaka
Prilikom izracunavanja Naivnog algoritma, matrica se ispisuje u polje koje se nalazi pored mesta za unosenje tacaka. Prilikom pokretanja algoritma DLT i nDLT odgovarajuce matrice se ispusuju u polje koje se nalazi pored odgovarajuceg mesta za unosenje tacaka. Pritom, izracunava se i faktor skaliranja kojim je potrebno pomnoziti dobijenu matricu da bi ona licila na onu dobijenu iz naivnog algoritma.
U primeru su koriscene tacke gde je poslednja koordinata jednaka 1, medjutim kod radi i za tacke iz profesorovog primera gde bi se u kodu prvo prevele u tacke oblika: (x,y,z) = (x/z, y/z, 1)
U primeru u prilogu se takodje moze videti kako odredjeni sum deluje na matricu, a takodje se i moze videti da je DLT otporan na permutacije tacaka tj njihovog redosleda.
U prilogu saljem screenshotove aplikacije sa unetim tackama i izracunatim rezultatom i prikazom, kao i dve slike koda.
P.S U poruci koju sam Vam poslao u vezi pojasnjena algoritma normalizacije, greskom sam napisao da je na mestu (3,3) skaliranja 0, isto i u vezi odredjivanja tezista. Medjutim, problem je bio definitivno sto sam racunao matricu skaliranja za tacke kako su unete, umesto na novodobijene transliranjem. Popravkom tog dela algoritam daje zeljene rezultate