Ülesanne täielikult lahendatud
-
Gradiendi suurus malelaua testpildi pikslis (31, 3) 9 sammu
Malelaua testpilt — puhas must ja valge, ruudud 32 pikslit laiad — parameetriga σ = 1,0 koos 3×3 hägustustuumaga, Tlo = 30 ja Thi = 80. Tuleta gradiendi moodul pikslil (31, 3), mis on viimane valge veerg enne esimest vertikaalset piiri, ning arvuta seejärel, mitme piksli laiuseks kujuneb serv, kuhu see kuulub.
-
Esmalt halltoonid, ning sellel pildil ei tee see midagi: kolm kaalu annavad summaks täpselt 1, seega võrdse punase, rohelise ja sinise sisendiga piksel säilitab oma väärtuse. Valge jääb väärtusele 255, must 0-le, seega kõik allpool toodud arvud tulenevad just neist kahest väärtusest.
-
Gaussi kaalud kahanevad kauguse ruuduga. Väärtusel σ = 1 saab tsenter kaaluks 1, serva jagavad 4 pikslit saavad e-0,5 = 0,6065 ja 4 nurka e-1 = 0,3679; läbi jagamine kogusummaga 4,8976 teeb neist kaalutud keskmise.
-
Rida 3 asub sügaval horisontaalse riba sees, mistõttu mis tahes akna 3 rida on seal identsed ja tuuma vertikaalne struktuur taandub välja. Olulised on vaid selle veergude summad, ja neid on üksnes 2.
-
Hägustamine üle piiri. Kohal x = 31 katab aken 2 valget veergu ja 1 musta; kohal x = 32 katab see 1 valge ja 2 musta. Järsk hüpe 255-lt 0-le on muutunud sujuvaks üleminekuks 255, 185, 70, 0 — need keskmised 2 väärtust, ümardatult, ongi need, mida inspektor kuvab.
-
Sobel kaalub vasakut veergu teguritega -1, -2, -1 ja paremat teguritega +1, +2, +1 ning keskmist veergu ei kaalu üldse. Kui kõik 3 rida on võrdsed, taanduvad need kaalud ühekordseks teguriks 4, seega on kogu konvolutsioon 4 korda suurem kui kahe poole veergude vahe.
-
Vertikaalne gradient kaob peegelpildilise põhjuse tõttu: pikslist ülal- ja allpool asuv rida koosnevad samast 3 arvust, mistõttu summa +1, +2, +1 taandab summa -1, -2, -1 liikmeti välja. Selle serva gradient on puhtalt horisontaalne, mis teebki järgmise sammu lihtsaks.
-
Neid kahte kombineerides on moodul lihtsalt horisontaalne gradient.
-
Võrdle sellega, mida sama serv annaks ilma hägustamata: pelk hüpe 255 üle sama tuuma. Silumine on kulutanud 280 ühikut, veidi üle 27% olemasolevast vastusest, ning see on mürataluvuse hind — mitte ümardamiskadu, vaid teadlik vahetuskaup.
-
Nüüd korda seda ühe veeru võrra paremal. Kohal x = 32 loeb aken 185, 70, 0, seega on vahe taas -185 ja moodul taas 740. Ühe veeru võrra kaugemal mõlemal pool langeb vahe umbes -70-le ja moodul 280-le.
Vastus
740 — ja serv tuleb 2 piksli laiune. Mittemaksimumide mahasurumine säilitab piksli siis, kui selle moodul on ≥ mõlemast naabrist piki gradienti. Siin on gradient suunatud piki x-telge, seega võrreldakse pikslit 31 vasakul asuva 280 ja paremal asuva 740-ga, pikslit 32 aga 740 ja 280-ga. Kumbki annab teisega viigi ning viik rahuldab tingimust ≥, mistõttu jäävad mõlemad ellu; väärtusel 740 on mõlemad enam kui 9 korda suuremad kui Thi = 80, seega tulevad mõlemad valged. Ükski lävepaar ei suuda neid eraldada, sest läved ei ole põhjuseks. Tegelik piir asub kohal x = 31,5, täpselt poolel teel viimase valge ja esimese musta piksli vahel, ning sümmeetriline hägustamine jätab gradiendi selle pooltäisarvu suhtes sümmeetriliseks — pole olemas ühteainust maksimumi, mida leida. Seda tasub teada enne mis tahes häälestamist: dubleeritud joon servakaardil on vahel lävendamisviga ja vahel aritmeetika, ning siin on tegu võrdsusega 740 = 740 pildil, mille ruudud juhtuvad olema täisarvu pikslite laiused.
-
Allikad (1)
- Insight block 3 — the three criteria, and the trade-off between two of them: J. Canny, "A Computational Approach to Edge Detection." IEEE Transactions on Pattern Analysis and Machine Intelligence PAMI-8(6), 679–698, 1986.