Algoritmus

Vanishing point/line meghatározása
Az első megoldandó részfeladat a vanishing point-ok meghatározása. Egy jó megközelítést kínál a probléma megoldására [5]. Ha a képet megszűrjük egy Canny éldetektorral, akkor megfelelő paraméterek választása esetén egy
vonalas outputot kapunk, ahol a vonalak a képen felismert éleket jelölik. Az éldetektor algoritmusa a következő [6]:
1: Gauss-simítással az input kép skála-tér képének előállítása
2: A második derivált nulla-átmeneteinek keresése a legnagyobb első derivált iránya szerint
3: A nem-maximális élpontok elnyomása
4: Hiszterézis-küszöbölés
5: Jellemző-szintézis
Az
éldetektált képre végre kell hajtani egy Hough-transzformációt. Egyenes detektálása Hough-transzformációval a következőképp végezhető el:
A kép egy (xi, yi) pontjának a Hough-térben yi = axi + b egyenes felel meg. Az egy egyenesbe eső
pontokhoz tartozó egyenesek a Hough-tér felett egy pontban metszik egymást. Függőleges egyeneseknél y = ax + b a végtelenbe fut, ezért korlátos függvényt, egy

alakú szinuszoidgörbét szoktak helyette használni, mivel az egy egyenesbe eső pontokhoz tartozó szinuszoidg
örbék szintén egy pontban metszik egymást. [4] Az élekhez tartozó egyenesek egy átlagos perspektivikus képen általában nem egy pontban metszik egymást a raszteres ábrázolásból eredő pontatlanság miatt. Ezért az "egy pontban metszés" fogalmat úgy kell módosítanunk jelen esetben, hogy
"egy adott sugarú körben metszés". E kör sugara annál nagyobb,
minél távolabb esik a középpontja a kép középpontjától (mert annál nagyobb a pontatlanság). A módszer alkalmazásának hatására a vanishing point-ok azon körök középpontjai lesznek, melyek
nagyon sok
egyenes metszéspontjaiként állnak elő.
A méretek meghatározása
A fentebb leírt single view metrology algoritmus MatLab-ban viszonylag könnyen implementálható, viszont
egy kicsit problémás a paraméterbeolvasó GUI-k elkészítése ebben a nyelvben. Így terveink szerint
egy különálló kis interaktív program haználatával adhatja meg a felhasználó a Rtalp,Rteto, Vtalp, Vteto objektumpontok pixeles koordinátáit, valamint a referenciaobjektum magasságát tetszőleges mértékegységben.
A modul JAVA Swing/2D vagy Visual C++ programozási nyelven készülne, outputja egy - a MatLab rendszer által paraméterként beolvasandó adatfájl lenne.
A MatLab-scriptünkben felhasználnánk internetes forrásokban fellelhető Canny-éldetektort és Hough-transzformátort.
3: R - Referencia, V - Vizsgálandó
4: vl - Vanishing Line
A teljes PDF dokumentáció letölthető innen.
|