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

Naivni, DLT, nDLT + Graficki prikaz

 
Slika Boris Karanovic
Naivni, DLT, nDLT + Graficki prikaz
napisao/la Boris Karanovic - nedelja, 28. oktobar 2018, 00:21
 

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