CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
DOCUMENTE SIMILARE |
|
TERMENI importanti pentru acest document |
|
Transformačné metódy spracovania obrazov
Zoznam symbolov a skratiek
Zoznam použitých skratiek
HT Houghová transformácia
HTP Houghová transformácia priamky
OP Obrazový prvok
RdT Radonová Transformácia
Zoznam symbolov
f (x, y) obrazová funkcia pôvodného obrazu
g (x, y) obrazová funkcia nového obrazu
F Množina vstupných bodov
Fj vstupný bod, obrazový prvok
h konvolučná maska
O okolie obrazového prvku
uhol oblúka v radiánoch
L dažka kružnicového oblúka
E množina obrazových prvkov
(xi, yj) obrazový prvok
Pi obrazový prvok
priestor parametrov
Gx Sobelova vertikálna maska
Gy Sobelova horizontálna maska
smer gradientu
Ñ operátor gradientu
Slovník termínov
Proces je postupnosť či rad časovo usporiadaných udalostí tak, že každá predchádzajúca udalosť sa zúčastňuje na determinácii nasledujúcej udalosti.
Vstupný priestor je množina bodov vstupného obrazu; tieto body sú pixely vstupujúce z fázy pred spracovaním s Houghovu transformáciou (filtrovanie, detekcia hrán, a prahovanie). Zvyčajne sú tieto body charakterizované iba svojimi súradnicami.
Parametrický (výstupný) priestor je priestor m-tíc parametrov hľadaných útvarov. Každá z nich nesie parametre rovnice a teda kóduje kandidáta.
Kvantizácia v terminológii Houghovej transformácie značí v podstate rozlíšenie vstupného, či parametrického priestoru. Rozlíšenie vstupného priestoru je bežné rastrovanie obrazu, rozlíšenie parametrického priestoru udáva presnosť, s akou vyhodnocujeme kandidáta.
Akumulátor – diskrétny kvantovaný priestor parametrov je implementácia parametrického priestoru, ktorá každej m-tice parametrov priradí jej hodnotu. Prvky akumulátora označujeme výrazom „bunka“. Hodnota je typicky prirodzené číslo a značí počet hlasov (prioritu) každého kandidáta, ktoré získal vo „volebnom procese“.
Vrchol – maximá akumulátorov tzv. „peak“ je (lokálne) maximum akumulátora vzhľadom na vzostupné usporiadanie akumulovaných buniek podľa hodnôt.
Transformácia znamená pretváranie, je to proces premeny jednej štruktúry na inú; proces alebo procesy, v ktorých sa transformand mení na transformát.
Houghova transformácia mapuje body (či množiny bodov) vstupného vektorového priestoru V na parametrický priestor P parametrov krivky (či iného parametricky opísateľného formálneho objektu), ktorá je definovaná analytickou rovnicou.
Úvod
Existenciu určitého predmetu môžeme naisto potvrdiť, len ak jeho existenciu dokážeme. Základom je vnímanie našimi zmyslami. Keby sme nevyužívali zrak, sluch, chuť a hmat, ušla by nám existencia všetkého, čo nás obklopuje. Najväčší podiel má zrak, teda vnímanie skutočnosti pomocou obrazov. Približne 75% všetkých informácií, ktoré ľudia prijímajú, sa získava vizuálnym systémom. Obrazové informácie sú najprirodzenejšou formou informácií a najbohatším zdrojom nami prijímaných údajov. Ľudské videnie je procesom, pri ktorom sa vníma intenzita svetla, tvary, farby a pohyb, všetko komplexne a s relatívnou presnosťou. Zrakový systém človeka dodáva do mozgu nepretržitý tok informácií, ktoré reprezentujú pozorovanú scénu. Informácie sa neustále aktualizujú a dopaňajú tak, aby umožnili porozumieť obsahu scény a identifikovať v nej potrebné objekty.
V šesťdesiatych rokoch potrebovali nejakú metódu na analýzu digitálnych obrazov. Úloha bola nájsť a definovať priamku v obrazoch.
V roku 1962 Paul V. C. Hough, pracovník spoločnosti IBM navrhol transformáciu na detekciu priamok v obrazoch jadrových reakcií získaných pomocou hmlových komôr. Spočiatku jej nebola venovaná pozornosť, až neskôr v 70-tych rokoch, sa začali objavovať prvé publikácie o jej využití. Odvtedy bol predmetom systematického výskumu a v 80-tych rokoch našla uplatnenia v mnohých priemyselných a špeciálnych aplikáciách. Hlavnými výhodami použitia Houghovej transformácie je odolnosť voči šumu. Houghová transformácia (ďalej len HT) je účinnou metódou pre detekciu kriviek v obrazoch, ktorá využíva koreláciu medzi bodmi ležiacimi na krivke a parametrami tejto krivky. HT bola najprv použitá na detekciu kriviek v binárnom obraze, neskôr bola rozšírená na detekciu kriviek vo viacúrovňovom obraze. Výskum v tejto oblasti prebehol už pomerne dávno, bola navrhnutá množina metód realizáciou HT pre základné obrazové primitíva, založených na najrôznejších princípoch. V roku 1981 D.H. Ballard predložil svoj návrh na generalizovanú Houghovú transformáciu pre vyhľadávanie zložitých útvarov, na základe porovnania šablón (Template matching).
HT bola doposiaľ použitá v rôznych oblastiach. Najprv v oblasti jadrovej fyziky, postupne bola aplikovaná v rôznych oblastiach medicíny a v biológií na detekciu nádorov. Ďalej na spracovanie snímok počítačovej tomografie alebo aj na spracovanie odtlačkov prstov. Našla uplatnenie i v priemysle, pri detekcii porúch, trhlín, tvarových nedostatkov, pri kontrole kvality, nedostatkov plošných spojov. HT našla uplatnenie v navigácii robotov, v dopravnej technike, a bola tiež úspešne aplikovaná vo vojenskej technike. Je tiež užitočná pri analýze textúr, v ich klasifikácií, v rozpoznávaní písma (to kvôli jej značnej odolnosti proti šumu).
Hoci HT bola vzhľadom na svoje výhodné vlastnosti použitá na riešenie celého radu problémov, jej možnosti použitia sú ešte naďalej otvorené. Vznikajú stále nové modifikácie jeho pôvodného algoritmu. Optimalizujú sa jeho algoritmy na výpočet, ako aj vznikajú nové spôsoby aplikácií príslušných algoritmov.
Vo svojej práci sa budem zaoberať s Houghovou transformáciou, ktorá slúži na detekciu priamok v binárnom obraze, a vplyv šumu na jeho použitie.
Houghová transformácia
Houghovú transformáciu možno vo všeobecnosti charakterizovať ako transformáciu, ktorá dokáže nájsť na základe výpočtu dopredu určené, parametricky opísateľné tvary, krivky, ktoré patria k určitej známej množine kriviek, tzv. obrazové primitíva. Základom Houghovej transformácie je teda transformácia priestoru obrazu na priestor parametrov. HT používa predovšetkým priestorovú informáciu o obrazových prvkoch (ich polohu), ale môže použiť aj informáciu nachádzajúcu sa v obrazovom signáli (hodnota jasu). Väčšina obrazov spracovaých HT je dvojrozmerná, možno však spracúvať aj mnohorozmerné obrazy (napr. trojrozmerné pri postupnosti pohyblivývh obrazov, medicínske snímky a pod.)
V odbornej literatúre existuje niekoľko exaktných definícií HT. Také sú definície na základe zhody šablón a integrálna definícia využívajúca vzájomný vzťah medzi Houghovou a Radonovou transformáciou (RdT), z ktorého vyplýva že HT je špeciálnym prípadom RdT.
HT dokáže nájsť na diskrétnom obrázku, na základe obrazových prvkov (OP) jednoduché tvary, akými sú priamky, kruhy, elipsoidy. V ďalších kapitolách bude bližšie popísaná detekciou priamok na obrázku.
Definícia Houghovej transformácie
Majme danú analytickú rovnicu, vyjadrujúcu tvar hľadaných elementov, v parametroch a premenných . Po výmene úloh parametrov a premenných, získame spätnú projekciu g
bodov na všetky tvary o parametroch , ktoré tento bod obsahujú. Máme tu teda spätnú projekciu vstupných bodov Houghovu transformáciu (pre tvar ft) môžeme definovať takto:
Def:
kde
)
Interpretácia definície je nasledovná: Predpokladáme, že daný vstupný obraz sa skladá z bodov a máme v ňom nájsť analytickú rovnicu, objekt, tvar, ; (anglická literatúra užíva termín „feature“) Body, ktoré ležia na takomto objekte majú tú vlastnosť, že spaňajú jeho analytickú rovnicu.. Houghova transformácia priradzuje každej m – tice parameter, to znamená každému tvaru, počet bodov vstupného obrazu, ktoré na ňom ležia. Tieto body sa uložia do takzvaného „akumulátora“. Tam kde akumulátor dosiahne najvyššie hodnoty, sú skryté nami hľadané objekty.
Najvyššie hodnoty akumulátora
Obr. 1 Akumulátor - priradené hodnoty k jednotlivým tvarom.
Houghová transformácia priamky
Smernicová parametrizácia
Základným vzťahom pre výpočet HT priamky (HTP) je:
kde je transformovaná funkcia a je Diracková delta funkcia. V tejto definícii je priamka opísaná troma parametrami , ktoré sú pre opis priamky nadbytočné, lebo medzi nimi existuje závislosť, a teda jeden parameter sa dá odstrániť.
V literatúre sa uvádzajú 2 formy pre parametrické vyjadrenie priamky:
Pre tento prípad definícia pre HTP má tvar:
Parametrizácia priamky v smernicovom tvare
)
kde a je smernica a b je úsek určený priesečníkom s osou y, je nevýhodná. Nevýhodou tejto parametrizácie je neohraničenosť parametrov a a b (oba parametre sa zbližujú k nekonečnu), z čoho vyplýva veľká nehomogénnosť priestoru parametrov. Táto parametrizácia sa preto často využíva iba v tých prípadoch, kde má transformovaná funkcia nejakú preferovanú orientáciu.
Normálová parametrizácia
Druhú formu pre parametrické vyjadrenie priamky opísali v roku 1972 Duda a Hart. Použili HTP založenú na normálovej parametrizácii priamky:
z čoho sa dá vyjadriť:
Kde r je vzdialenosť priamky od začiatku súradnicovej sústavy a je uhol medzi kladnou časťou osi x a kolmicou vedenou na súradnicovú sústavu od priamky.
Obr. Normálová parametrizácia priamky.
Výhodou uvedenej parametrizácie je ohraničenosť hodnôt, parametrov r a . Ak sú rozmery obrazu ohraničené s hodnotami xmax a ymax, vtedy parametre nadobudnú hodnoty a , kde
je kladná a konečná hodnota, ak uvažujeme ohraničený obraz
Základné vlastnosti HTP
Základné vlastnosti HTP možno zhrnúť do týchto bodov:
Každému OP Fj zodpovedá jedna sínusoida v akumulátore
Obr. 3 Bod vo vstupnom obraze a akumulátor.
Pre bod v akumulátore zodpovedá priamka v obraze
Obr. Bod v akumulátore a výstupný obraz.
Bodom v obraze ležiacim na jednej priamke zodpovedajú v akumulátore sínusoidy, ktoré sa pretínajú v jednom bode
Obr. Priamka vo vstupnom obraze a výstup v akumulátore.
Bodom v akumulátore ležiacim na jednej sínusoide zodpovedá v obraze zväzok priamok, ktoré sa pretínajú v jedinom bode.
Obr. Sinusida v akumulátore, priamky vo výslednom obraze.
Detekcia priamky (resp. priamok) v obraze zodpovedá teda detekcií maxima. Každé maximum v akumulátore reprezentuje jednu priamku v obraze. Zaujímavou úlohou je určiť prahovú hodnotu, ktoré maximá sú pre nás zaujímavé a ktoré už nie.
Počet maxím sa odvíja aj od kvality obrazu. Pri zašumenom, nekvalitnom obraze, kde neje možné jednoznačne určiť hrany, je potrebné si nasadiť rôzne filtre, aké sú napríklad rozostrenie (blur), zaostrenie (sharpen), mediánové filtre, ktoré eliminujú veľké jasové kontrasty v okolí obrazového prvku atď.
Cieľom je nastaviť vhodný kontrast a jas tak, aby šum v obrázku bol čo najnižší a hrany boli čo najjednoduchšie zdetekovateľné.
Hlavnou výhodou HT je vysoká odolnosť proti šumu. Šum v obraze spôsobí objavenie falošných, nenulových OP, respektíve odstránenie niektorých užitočných OP. V praxi je však málo pravdepodobné, že by šum bol sústredený do smeru priamky.
Nevýhodou HT je to, že je citlivá na kvantovanie r a , a vyžaduje veľké množstvo výpočtu. Túto nevýhodu možno kompenzovať s použitím paralelných špecializovaných číslicových procesorov, resp. použitím optických metód výpočtu. V prípade obrazu zlej kvality každý jeden použitý filter potrebuje ešte ďalšie výpočty, čo predaži čas, kým sa dopracujeme k výsledku.
Diskrétna Houghová transformácia priamky
V praktických aplikáciách pri práci s číslicovými obrazmi, sa využíva diskrétna HTP. Na ukladanie hodnôt sa používa akumulátor (diskrétny kvantovaný priestor parametrov). Najmenšou jednotkou akumulátora sú bunky. Počet buniek je určený s kvantizačným krokom a . Pri výpočte diskrétnej HTP sa inkrementujú hodnoty tých buniek akumulátora, cez ktoré prechádza niektorá sínusoida generovaná k jednotlivým nenulovým OP. Tento proces sa nazýva hlasovanie, alebo generovanie hlasov.
Jednotlivé súradnice, ktoré dosiahli najvyšší počet hlasov po dokončení výpočtov, predstavujú jednoznačné určenie smerníc a uhlov priamok, ktoré sa nachádzajú v obraze. Našou úlohou je už iba stanoviť prahovú hodnotu, stanoviť, ktoré hodnoty sa rátajú za maximá a ktoré už nie. Úlohu si môžeme zjednodušiť, ak stanovíme pevnú hranicu a najvyšší počet maxím
Obr. 7 Prvé kroky HTP pre tri možné OP a šesť možných uhlov.
Houghová transformácia zo vstupného obrazu vyberie OP, ku ktorým sa podľa vzťahu vypočíta vzdialenosť a uhol. Na Obr. 7 vidíme príklad troch OP ku ktorým sú vypočítané vzdialenosti k šiestim uhlom.
Obr. 8 Houghov priestor pre tri možné body a šesť možných uhlov.
Hodnoty vypočítaných vzdialeností a uhlov predstavujú súradnice bodov v akumulátore. Tie súradnice, ktoré dosiahnu najvyšší počet hlasov predstavujú parametre priamok.
Detekcia hrán v obraze
Digitálny obraz
V reálnom svete všetko, čo vnímame, je spojitého charakteru. Nasnímaním -digitalizáciou obrazu dostaneme diskrétny model. Matematický model obrazu je spojitá funkcia:
)
Pri digitalizácií sa stratí informácia o funkcii f , zostávajú len hodnoty v určitých bodoch. V počítačovej grafike raster a gamut (farebný rozsah) zobrazovacích jednotiek a samotný proces digitalizácie nám určuje hranice možností. Týmto spôsobom nám vznikne obraz, kde x a y reprezentujú bod vo štvorcovom rastri nazývaný obrazový prvok (OP), a f udáva farebnú informáciu.
Aby bolo možné detekovať a určiť hranicu nejakého objektu, treba obraz predspracovať. Algoritmus predspracovania, resp. výber vhodného filtra závisí od konkrétnej aplikácie. Rôzne typy objektov vyžadujú použitie rôznych filtrov. Pre komplexnejšie scény treba aplikovať aj algoritmy potlačenia šumu. Keď je objekt detekovaný a lokalizovaný, možno opísať jeho hranice pomocou algoritmov detekcie hrán alebo algoritmov sledovania hranice.
Hranové filtre
Hranou sa nazývajú miesta v obraze, kde sa prudko mení jasová hodnota obrazovej funkcie f (x, y). Na sledovanie priebehu funkcie dvoch premenných slúži gradientový operátor Ñ. Gradient je vektorová veličina určujúca smer rastu funkcie a veľkosť rastu. Body s veľkou hodnotou gradientu sa považujú za hrany.
V spojitom prípade, gradient funkcie dvoch premenných je:
Veľkosť gradientu:
)
Smer hrany sa obvykle definuje ako kolmý na smer gradientu.
Smer gradientu:
Ak hľadáme silné hrany, bez ohľadu na smer, môžeme použiť Laplacian Ñ . Tento operátor vychádza z druhých parciálnych derivácií. Pre monotónne rastúcu obrazovú funkciu f je Laplacian Ñ nulový, ak gradient dosahuje lokálne maximum:
)
V diskrétnom prípade parciálne derivácie aproximujeme diferenciami:
)
Veľkosť gradientu v diskrétnom prípade môžeme aproximovať absolútnou hodnotou:
)
Na hľadanie hrán sa v praxi používajú jednoduché konvolučné masky, ktoré dobre aproximujú derivácie obrazovej funkcie. Uvedieme niekoľko typov konvolučných operátorov.
Sobelov operátor
)
Tento operátor je jednoduchý, detekcia sa robí podľa orientácie hrán, je veľmi rýchly pretože nepotrebuje na úpravu obrazu žiaden filter na odstránenie šumu, čo je vlastne aj jeho nevýhoda, pretože ak je obraz zašumený, tak prakticky nie je možné detekovať spoľahlivo hrany v obraze.
Sobelov filter pozostáva z dvoch masiek, takže nachádza vertikálne a horizontálne zmeny jasu v danom obraze.
Sobelove masky:
)
Gx Gy
Sobelov filter sa typicky používa na nefarebné obrazy, keď na nájdenie OP v obraze sa využívajú dve masky o veľkosti 3x3. Jedna maska slúži na zistenie gradientu na x-ovej osi a druhá maska zase zistí gradient pre y-ovú súradnicu. Táto maska sa potom posúva po OP a stále sa zisťuje maximálny gradient v danom OP.
Navrhnutý algoritmus pracuje tak, že po celom vstupnom obraze sa posúvajú tieto masky a zisťujú hodnoty OP, z ktorých nakoniec vyberú jeden a začínajú sa posúvať doprava, až kým sa nedosiahne koniec riadku. Potom sa maska automaticky posunie o riadok vyššie. Tu je dôležité zdôrazniť, že OP na prvom a poslednom riadku, ako aj stapce úplne napravo a úplne naľavo nemôžu byť kontrolované touto maskou, pretože má rozmery 3x3, a tak by sa tieto OP nedali vôbec určiť, pretože maska by zasahovala za hranicu obrazu. Maska Gx zvýrazňuje hrany obsiahnuté v obraze v horizontálnom smere a Gy maska zvýrazňuje hrany vo vertikálnom smere. Ak dostaneme veľkosť oboch z nich, tak vstupný obraz má detekované hrany v oboch smeroch a teda má hrany obsiahnuté ako po horizontálnom, tak aj po vertikálnom smere.
Veľkosť gradientu sa vyráta:
)
Aproximácia:
)
Použitím tejto matice sa dá vyrátať veľkosť gradientu ako:
)
Smer hrany:
)
Ak dostaneme vo výpočte 0, tak zistíme, že maximálny kontrast z čiernej farby do bielej je orientovaný v obraze zľava doprava. Ostatné uhly berieme proti smeru hodinových ručičiek.
Tento krok detekcie hrán produkuje dve 2D zoskupenia, M (magnitude - veľkosť) a D (direction - smer) zobrazujúce veľkosť a smer hrán. V ďalšom kroku, nastavením prahu nadobudne obraz M novú podobu. Výsledkom je binárny obraz Mbin obsahujúci len biele hrany a čierne pozadie.
Detekcia hrán konvolučnou operáciou je nerekurzívna, to znamená, že nie je nutné poznať hodnoty spracovávaného obrazu a počítať jeho nové hodnoty.
Prewittov operátor
Prewittov operátor je vhodná cesta na odhad veľkosti a orientácie hrán.
)
Robertsov operátor
)
Veľkosť gradientu sa počíta podľa vzťahu:
)
Laplaceov operátor aproximuje druhú deriváciu, preto je invariantný vzhľadom na otočenie, a udáva len veľkosť hrany. Nevýhodou je veľká citlivosť na šum a dvojité odozvy na hrany odpovedajúce tenkým líniám.
Konvolučné masky:
4–susednosť:
)
8–susednosť:
)
LoG operátor (Laplacian of Gaussian)
Základom prístupu je hľadanie miesta
v obraze, kde druhá derivácia obrazovej funkcie prechádza nulou. Na tomto
mieste prvá derivácia dosahuje lokálne maximum.
Problémom je, že druhá derivácia je citlivá na šum. Preto sa najprv potlačí šum
a až potom sa derivuje.
Na potlačenie šumu sa používa lineárny filter, ktorého koeficienty v konvolučnej maske zodpovedajú dvojrozmernému gaussovskému rozdeleniu:
)
kde s je stredná kvadratická odchýlka, ktorá určuje okolie. OP bližšie k stredu majú väčšiu váhu ako vzdialenejšie. Na odhad druhej derivácie z filtrovanej obrazovej funkcie G (x, y, s) * f (x, y), kde * je konvolúcia, môžeme použiť Laplacian Ñ . Dostaneme LoG operátor, Ñ [G (x, y, s) * f (x, y)] , v ktorom vďaka linearite operácií môžeme zameniť poradie konvolúcie a derivácie.
)
Hodnota Ñ G (x, y, s nezávisí od obrazu, preto ju môžeme vypočítať dopredu. Použitím substitúcie x2 + y2 = r2 dostávame:
kde r je Euklidovská vzdialenosť od stredu. Gaussian je stredovo symetrický, preto je substitúcia prípustná.
Prvá derivácia je:
)
Druhá derivácia, Laplacian Gaussianu:
)
Po spätnom dosadení dostaneme vzťah na výpočet konvolučnej masky:
)
kde c je normalizovaný koeficient.
Zero – cross operátor
Zero – cross operátor reaguje na rapídne zmeny intenzity. Výstupný obraz je zvyčajne binárny, nulové hodnoty sú tam, kde nie je veľká zmena intenzity. Nenulové zas tam, kde gradient presahuje hraničnú hodnotu.
Canny operátor
Cannyho operátor bol navrhnutý tak, aby bol optimálny detektor hrán. Na vstupe pracuje s čiernobielym obrázkom. Ako výstup dostaneme obraz, ktorí zobrazuje pozíciu zmien v intenzite.
Cannyho operátor k dopracovaniu k výsledku používa viac krokov. V prvom kroku je rozmazaný s Gaussovým filtrom. Potom sa preženie cez operátor prvej derivácie v 2D priestore (podobne ako aj pri Robertsovom operátore). Na zobrazenie korektných hrán sa vhodným spôsobom zvolia dva úrovne prahovania T1 a T2 pričom platí, že T1>T2. Ako výsledok získame pekné súvislé krivky, ktoré výborne sledujú ozajstné krivky tvaru na obraze. Jemné nedostatky dotvaruje, dokreslí, aby krivky boli súvislé.
Veľkou nevýhodou tejto operácie je to, že pri zašumenom obraze pospája aj šumové body. Takto získané krivky nie sú pre nás vhodné.
Obr. 9 Aplikácia Cannyho operátora – na 40% zašumený obraz.
Prahovanie Threshold
Posledný krok v detekcii hrán je prahovanie, teda je potrebné rozhodnúť, aká silná odozva znamená hranu. Dobré nastavenie prahu rozhoduje o kvalite detektora, príliš nízka hodnota označí za hrany i šum, príliš vysoká zase zahodí i niektoré podstatné hrany. Pretože často nie je možné určiť jeden prah pre celý obraz, používa sa tzv. prahovanie s hysteréziou.
Pre prahovanie s hysteréziou sa nastavia dva prahy. Najskôr sa nájdu OP výrazných hrán pomocou vysokého prahu a od tých sa pokračuje v označovaní takých OP, v ktorých odozva hranového detektora je väčšia ako nízky prah. Vďaka tomu sa obmedzí šum a hrany zostanú súvislé.
Experimenty a ich výsledky
Na testovanie funkčnosti a vlastností vyvinutých algoritmov boli vykonané nasledujúce experimenty. Pracovalo sa so vstupnými obrazmi obsahujúcimi priamky v rôznych uhloch, hrúbok a obrazy z reálneho života.
Na testovanie boli použité prostriedky MatLabu, kde sa dotvorilo a upravilo knižničný kód pre realizáciu Houghovej transformácie. Boli pridané moduly na načítanie obrázkov formátu BPM, JPEG, GIF, PNG, TIFF a ďalších formátov, modul na detekciu a zobrazenie hrán, a modul pre 3D zobrazenie HTP.
Skúmanie imunity na šum jednotlivých hranových filtrov
Táto časť sa zaoberá s otázkou, ktorý hranový filter je najlepšie použiteľný pri detekcií hrán v praxi, pri zašumenom obraze. Percentuálne bol pridávaný Gaussový šum k obrazu. Vyskúšalo sa viac typov operátorov na detekciu hrán. Najlepšie výsledky boli dosiahnuté pri použití Sobelovho operátora. Prewittov a Robertsov operátor má porovnateľné vlastnosti ako Sobelov operátor. Sobelov operátor dosiahol svoje hranice pri zašumení nad 70%. Pri použití detektora Zero – cross a Canny výsledky boli horšie. Ich hranice použiteľnosti sú niekde okolo 40%. V nasledujúcej kapitole budú uvedené príklady z meraní. Pri hľadaní priamok na obrázku z reálneho života metóda detekcie Canny tiež nebol užitočný. Našiel hľadané priamky, ale našiel taktiež veľa neužitočných, falošných priamok. Príklady sú uvedené v časti Príloha C: .
Počas experimentu sa vyskúšal aj prípad, keď sa nenadefinuje maximálny počet priamok, ktoré má nájsť na zašumenom obrázku. Použitý bol detektor hrán Zero – Corss operátor. Výsledky experimentov sú uvedené v časti Príloha D:.
Príklad na vplyv detekcie hrán a následného výsledku pri zašumenom vstupnom obraze.
Obr. 10 Obraz zašumený na 10% Gaussovho šumu.
Obr. Obraz zašumený na 40% Gaussovho šumu.
Obr. 12 Obraz zašumený na 70% Gaussovho šumu.
Obr. 13 Obraz zašumený na 90% Gaussovho šumu.
Využitie HT vo vybraných reálnych aplikáciách
Ako už z úvodu vyplýva, HT možno aplikovať na široké spektrum úloh, z rôznych vedeckých oblastí. HT sa vyznačuje s tým, že z obrázkov, na základe niekoľkých obrazových bodov vie zistiť presnú polohu jednoduchých tvarov. V akumulátore sa nachádza jeho presný matematický opis, preto je výhodné jeho použitie v prípadoch, keď na základe informácie z kamery potrebujeme určiť polohu.
Rýchlo a jednoducho sa dá riešiť úloha navigácie auta na základe informácie z kamery umiestnené na aute, keď poznáme presnú polohu kamery a pozíciu krajnice na obrázku. Z toho sa dá dopočítať pozícia auta voči krajnici.
Jednoducho sa dá riešiť aj úloha spočítania priamok (alebo aj iných tvarov) na obrázku. Pri riešení tejto úlohy nám stačí spočítať maximálne hodnoty v akumulátore do istej prahovej hodnoty. Uplatnenie HT sa našlo aj v priemyselných aplikáciách.
Záver
Táto bakalárska práca sa zaoberá detekciou priamok pomocou Houghovej transformácie. V práci je teoreticky rozpracovaná metóda detekcie priamok. Opísané sú algoritmy na detekciu hrán v obraze, aby sme ich zvýraznili.
Na základe teoretických poznatkov som vyvinul malý program, ktorý dokáže zdetekovať priamku na obraze. Ďalej sa skúmal vplyv zašumenia obrazu na efektivitu a kvalitu transformácie, ktoré sú opísané v kapitole 4.
Hlavný problém pri detekcií priamok v zašumenom obraze je nájdenie ideálnych nastavení filtrov, nájdenie vhodného algoritmu detekcie hrán. Pri meraní sa zistilo, že musia existovať lepšie nastavenia detektora hrán. Dôkazom toho je skutočnosť, že napr. pri Obr. 13 je vidieť pozíciu hľadanej priamky, ale použitý program to už nedokázal exaktne nájsť. V budúcnosti nás ešte čaká úloha, ako navrhnúť a nakonfigurovať systém snímačov tak, aby výsledný obraz bol čo najkvalitnejší, aby Houghová transformácia bol čo najefektívnejšia.
Zoznam použitej literatúry
[1] HOUGH, P. V. C.: Method and Means for Recognizing Complex Patterns. U.S Patent 3069654, 1962.
[2] BALLARD, D, H.: -BROWN, C.M.: Computer Vission. Prentice-Hall, Englewood Cliffs, NJ, 1982.
[3] EKSTROM, M.P.: Digital Image Processing Techniques. Academic Press, New York, 1984.
[4] DUDA, R.O. – HART, P.E.: Pattern Recognition and Scene Analysis. John Wiley, New York, 1973.
[5] TURÁN, J.: Detekcia presnej polohy kruhových otvorov použitím Houghovej transformácie. In: AUTOS-88, Plzeň, 1988, 163-169.
[6] TURÁN, J.: Aplikácia Houghovej transformácie priamky a kružnice pri spracovaní obrazov. In: Digitální zpracování obrazu ‘86 , Praha, 1986, 28-38.
[7] IANNINO, A – SHAPIRO, S. D.: A Survey of the Hough Transform and its Extensions and for Curve Detection. In: Proc. PRIP – 78, New York, USA, 1978, 32-38.
[8] LEAVERS, V.F.: Shape Detection in Computer Vision Using the Hough Transform. Springer-Verlag, 1992, 47-54.
[9] KIMME, C. – BALLARD, D. – SKLANSKY, J.: Finding Circles by an Array of Accumulators. Comm. ACM, Vol. 18, No. 2, 1975, 120-122.
MERLIN, P. M. – FARBER, D. J.: A Parallel Mechanism for Detecting Curves in Pictures. IEEE Trans., Vol. C-24, No. 1, 1975, 96-98.
IANNINO, A.: Hough Transform Theory and Image Processing Experiments. PhD. thesis, Stevens Institute of Technology, Castle Point, Hoboken, USA, 1973.
DUDA, R.O. – HART, P.E.: Use of the Hough Transform To Detect lines and Curves in Pictures. Comm. Association for Computing Machinery, Vol. 15, No.1, 1972, 11-15.
BARTSCH, H.J.: Matematické vzorce. Mladá fronta, Praha, 2000, 328-332, 413- 418.
BLÁZSOVITS, G: Interaktívna učebnica spracovania obrazu. Bratislava, 2006 https://dip.sccg.sk
https://homepages.inf.ed.ac.uk/rbf/HIPR2/hipr_top.htm
https://en.wikipedia.org/wiki/Hough_transform
https://cs.wikipedia.org/wiki/Detekce_hran
https://cs.wikipedia.org/wiki/kru%C5%BEnica
https://www.rob.cs.tu-bs.de/content/04-teaching/06-interactive/HNF.html
Prílohy
Príloha A: CD médium – bakalárska práca v elektronickej podobe, prílohy v elektronickej podobe, použité obrázky v bakalárskej práce, výsledky meraní, zdrojový kód použitého programu na meranie.
Príloha B: Zdrojový kód programu napísaný v programe MatLab. m – súbory
Príloha C: Ukážka z experimentálnej časti – obrázok z reálneho života
Príloha D: Ukážka z experimentálnej časti – realizácia HTP bez nadefinovania maximálneho počtu hľadaných priamok
Príloha B: Zdrojový kód programu napísaný v programe MatLab. m – súbory
houghtransform.m
clear;
clc;
global edges BW BW2
ret=1;
disp(
disp( Realizácia Houghovej transformácie ======'
disp(
disp(
nacitane vstupneho obrazku %
while(ret==1)
file=input('Zadajte adresu a meno obrazku (max 1280x800) (napr.: bod.bmp): ' 's'
if isempty(file)
file='street2.jpg'
end
image=imread(file);
[rows cols level]=size(image);
if cols<=1280 && rows<=800
ret=0;
else
disp(
disp('Obrazok privelky na spracovanie !!!'
disp(' --> max. velkost: 1280x800 px.'
disp(
ret=1;
end
end
Urcenie maximalneho poctu maxim %
MAXPEAK=input('Urc maximalny pocet maxim po Houghovej transformacii: '
if isempty(MAXPEAK)
MAXPEAK=20;
end
Zadaj Threshold v percentach %
THRESHOLD1=input('Urc Threshold v percentach, ktore urovni bereme do uvahy: '
if isempty(THRESHOLD1)
THRESHOLD=0.5;
else
THRESHOLD=THRESHOLD1/100;
end
Detekcia hran %
v=1;
while (v~=-2);
clc
fprintf('Vyberte typ detekcie hrann'
if (v==1);fprintf('n>SOBEL'
else fprintf('n sobel' end
if (v==2);fprintf('n>PREWITT'
else fprintf('n prewitt' end
if (v==3);fprintf('n>ROBERTS'
else fprintf('n roberts' end
if (v==4);fprintf('n>LOG'
else fprintf('n log' end
if (v==5);fprintf('n>ZEROCROSS'
else fprintf('n zerocross' end
if (v==6);fprintf('n>CANNY'
else fprintf('n canny' end
if (v==7);fprintf('n>KONIECn'
else fprintf('n koniecn' end
fprintf('nnvyber zo zoznamu typ detekcie hran'
volba=getkey();
if (volba~=30&& volba~=31&& volba~=13&& volba~=27&& volba~=28&& volba~=29) %osetrenie, nezelany vstup
volba=v;end
switch(volba)
case
if(v>1); v=v-1;end
case
if(v<7); v=v+1;end
case
switch(v)
case
tran='sobel'
transformacia(file, MAXPEAK, THRESHOLD, tran);
v=-2
case
tran='prewitt'
transformacia(file, MAXPEAK, THRESHOLD, tran);
v=-2
case
tran='roberts'
transformacia(file, MAXPEAK, THRESHOLD, tran);
v=-2
case
tran='log'
transformacia(file, MAXPEAK, THRESHOLD, tran);
v=-2
case
tran='zerocross'
transformacia(file, MAXPEAK, THRESHOLD, tran);
v=-2
case
tran='canny'
transformacia(file, MAXPEAK, THRESHOLD, tran);
v=-2
case
v=koniec(v) ;
end
case
v=3;v=koniec(v);
end
end
clc
transformacia.m
function [v] = transformacia(image, MAXPEAK, THRESHOLD, tran)
Detekcia hran %
image=imread(image);
[M, N, B]=size(image);
edges = [];
edges(:, :, 1) = edge(image(:, :, 1), tran);
if B>1
edges(:, :, 2) = edge(image(:, :, 2), tran);
edges(:, :, 3) = edge(image(:, :, 3), tran);
end
BW= (edges(:, :, 1)+edges(:, :, 1)+edges(:, :, 1))/3;
figure(5), imshow(BW); title('edge detecting'
figure(1), imshow(image);
Realizacia Houghovej transformacie %
volanie funkcie %
[H, T, R] = hough(BW);
figure(2), imshow(H, [], 'XData', T, 'YData', R, 'InitialMagnification' 'fit'
xlabel('theta'), ylabel('rho'
axis on, axis normal, hold on
Detekcia MAXIMA %
P = houghpeaks(H, MAXPEAK, 'threshold', ceil(THRESHOLD*max(H(:))));
x = T(P(:, 2)); y = R(P(:, 1));
plot(x, y, 's' 'color' 'white'
Hladanie priamky %
lines = houghlines(BW, T, R, P, 'FillGap' 'MinLength'
figure(3), imshow(image), hold on
max_len = 0;
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:, 1), xy(:, 2), 'LineWidth' 'Color' 'red'
end
figure(4), mesh (H);
getkey.m
function ch = getkey(m)
% GETKEY - get a single keypress
% CH = GETKEY waits for a keypress and returns the ASCII code. Accepts
% all ascii characters, including backspace (8), space (32), enter (13),
% etc, that can be typed on the keyboard. Non-ascii keys (ctrl, alt, ..)
% return a NaN. CH is a double.
% CH = GETKEY('non-ascii') uses non-documented matlab 6.5 features to
% return a string describing the key pressed. In this way keys like ctrl, alt, tab
% etc. can also distinguished. CH is a string.
% This function is kind of a workaround for getch in C. It uses a modal, but
non-visible window, which does show up in the taskbar.
% C-language keywords: KBHIT, KEYPRESS, GETKEY, GETCH
% Examples:
fprintf('nPress any key: ') ;
ch = getkey ;
fprintf('%cn', ch) ;
fprintf('nPress the Ctrl-key: ') ;
if strcmp(getkey('non-ascii'), 'control'),
fprintf('OKn') ;
else
fprintf(' wrong key n') ;
end
% See also INPUT, CHAR
% Determine the callback string to use
if nargin == 1,
if strcmp(lower(m), 'non-ascii'
callstr = ['set(gcbf, ''Userdata'', get(gcbf, ''Currentkey'')) ; uiresume '
else
error('Argument should be the string ''non-ascii'''
end
else
callstr = ['set(gcbf, ''Userdata'', double(get(gcbf, ''Currentcharacter''))) ; uiresume '
end
% Set up the figure
% May be the position property should be individually tweaked to avoid visibility
fh = figure('keypressfcn', callstr,
'windowstyle' 'modal'
'position'
'Name' 'GETKEY'
'userdata' 'timeout'
try
% Wait for something to happen
uiwait ;
ch = get(fh, 'Userdata'
if isempty(ch),
ch = NaN ;
end
catch
% Something went wrong, return and empty matrix.
ch = [] ;
end
delete(fh) ;
koniec.m
function v=koniec(hpm) %hmp hodnota polozky z povodneho menu
v=1; %v predstavuje cislo polozky menu
while (v~=-2&&v~=hpm);
clc
fprintf('nn sobel'
fprintf('n prewitt'
fprintf('n roberts'
fprintf('n log'
fprintf('n zerocross'
if (v==1);fprintf('n>KONIEC>ANO'
else fprintf('n>KONIEC ano' end
if (v==2);fprintf('n <NIE'
else fprintf('n nie' end
fprintf('nnzadanie c.23 ukoncit?'
volba=getkey();
if (volba~=30&& volba~=31&& volba~=13&& volba~=27&& volba~=29&& volba~=28) %osetrenie nezelany vstup
volba=v;end
switch(volba)
case
if(v>1); v=v-1;end
case
if(v<2); v=v+1;end
case %pre viac podmienok k prepinacu case
switch(v)
case 1 ;v=-2;
case 2 ;v=hpm;
end
case ;v=hpm;
end
end
clc
Príloha C: Ukážka z experimentálnej časti – obrázok z reálneho života
Obr. 14 Detekcia hrán, obrázok z reálneho sveta
Obr. 15 2D zobrazenie HTP, (akumulátor s vyznačenými maximami)
Obr. 16 3D zobrazenie HTP, (akumulátor)
Obr. 17 Výsledný obraz (nájdené priamky sú značené s červenou)
Príloha D: Ukážka z experimentálnej časti – realizácia HTP bez nadefinovania
maximálneho počtu hľadaných priamok
Obr. 18 Detekcia hrán na 40% zašumenom obrázku
Obr. 19 Výstup po HTP
Obr. 20 2D zobrazenie HTP, (akumulátor s vyznačenými maximami)
Obr. 21 3D zobrazenie HTP, (akumulátor)
Curriculum vitae
Dát. nar.: .1986 Košice – Šaca
Vzdelanie: Momentálne študujem na Technickej univerzite v Košiciach, Fakulta elektrotechniky a informatiky, odbor Elektronika, 3. ročník, študent, od roku 2005
Gymnázium a ZŠ Šándora Márayho v Košiciach, 2001-2005
- ZŠ s vyučovacím jazykom maďarským v Turni nad Bodvou v rokoch 1992-2001
Jazykové vedomosti:
Anglický – mierne pokročilý (maturita, úroveň: B)
Maďarský jazyk – materinský
Zručnosti, skúsenosti:
Organizačné schopnosti, práca v teame
Certifikát ECDL úplný
Zahraničné skúsenosti, Letné brigády v Anglicku (Birmingham) a vo Fínsku
Corel Draw, Photoshop CS, a iné základné programovateľské zručnosti, tvorba web stránok
Vodičsky preukaz A, B
Ovládanie ľudových remesiel, tkanie, hrnčiarstvo, kožiarstvo
Záujmy: - Prezident študentskej organizácie BEST Košice (Board of European Students of Technology)
Predseda študentskej organizácie Kikelet Košice
Organizovanie letných táborov, voľnočasových aktivít, práca s ľuďmi
Člen speváckeho zboru Csermely a CollegiumTechnicum
Hudobne vzdelanie: klavír, gitara, basová gitara
Zakladateľ kapely Overdose
Skaut
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1909
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved