IpariKepfeldolgozasEllenorzo03

A VIK Wikiből
A nyomtatható változat már nem támogatott, és hibásan jelenhet meg. Kérjük, frissítsd a böngésződ könyvjelzőit, és használd a böngésző alapértelmezett nyomtatás funkcióját.

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


Ipari képfeldolgozás és képmegjelenítés Ellenörző kérdései - 3. hét

1. Definiáljon tulajdonságmértéket bináris képeken a méret, a pozíció és az orientáció meghatározására

Alakzatokat jellemezhetünk a ponthalmaz különböző momentumaival:

Ebből a nulladfokú momentum a blob területével egyenlő (méret). Ha mindezt csak adott tengelyre számítjuk ki, az elsőfokú momentumokból megkaphatjuk a súlypontot, ami a pozícióra adhat egy mérőszámot:

2. Hogyan határozható meg az orientáció? Milyen nyomatékok ismeretét feltételezi?

meghatározás: A helyzethez (orientációhoz) is hasonló mértéket keresünk: legyen minden alakzatra értelmes, eltolásnál, forgatásnál a tárggyal együtt mozogjon. A definiáláshoz egy fizikai fogalmat használunk: ha egy testet egy tengely körül forgatni akarjuk, akkor lesz egy (tengelytől függő) tehetetlenségi nyomatéka. Ha megkeressük azt a (képsíkban fekvő) tengelyt, ami körül a legkisebb ez a nyomaték, az rendelkezik a kívánt tulajdonságokkal. Kiszámolása: először eltoljuk a tárgyat, hogy a súlypont az origóba kerüljön, majd kiszámoljuk a másodrendű momentumokat és a másodrendű keresztmomentumot. Ezek hasonló integrálok, x és y helyett a függvényt rendre -tel, -tel és xy-nal szorozva.

Tehát kell a súlypont (elsőrendű nyomaték) ismerete az eltoláshoz, majd ugye a másodrendű nyomatékok.

3. Mi a vetület? Hogyan határozható meg az orientáció, a pozíció és a méret a vetületekből?

A továbbiakhoz szükségünk lesz a vetület fogalmára. A kép egy vetülete egy egyváltozós függvény, amit az eredeti kétváltozósból vonalmenti integrálással kaphatunk. Pl. az y tengelyre vett vetületet úgy kapjuk, hogy az x változó mentén integrálunk, így a kapott kifejezés már csak y-tól fog függeni:

  • Méret*: nulladrendű nyomaték bármelyik vetületen. *Pozíció*: Két (merőleges) vetületen az elsőrendű nyomatékok megadják a súlypont két koordinátáját. *Orientáció*: A szükséges 3 másodrendű nyomaték meghatározható 3 darab (45°-os szöget bezáró) vetületről.

4. Mi a futáshossz kódolás? Hogyan határozható meg a vízszintes, a függőleges és a diagonális vetület a futáshossz-kódolt képből?

futáshossz kódolás: A gyakorlatban nem célszerű az egész képet egyszerre, tömörítetlenül memóriában tartani. Mivel jellemzőek a nagy, összefüggő, egyszínű területek, ezért jól használható a futáshossz-kódolás. Feltéve, hogy a kép bal szélén csupa nulla van, minden sorban tároljuk, hány nullával kezdődik, majd hány egyes következik, majd hány nulla, stb. (az azonos számokból álló "futamok" hosszát).

  • Vetületek meghatározása*: A tömörített adatsorból visszafejtés nélkül is hatékonyan meghatározhatók bizonyos vetületek, így a momentumok is.
  • Vízszintes vetület*: Minden második (egyesek, vagyis fekete pixelek számát jelképező) szám összeadása a sorban. *Függőleges vetület*: a vetület első deriváltja a kép egyszeri beolvasása közben könnyen előállítható (a megfelelő pozíciókat inkrementálva ill. dekrementálva), majd ebből maga a vetület.

5. Diszkrét térben szomszédság definíciók. Mi teszi szükségessé a hatszomszédság bevezetését?

4-szomszédosság: a két pixelnek "van közös oldala"

8-szomszédosság: a két pixelnek van közös oldala vagy csúcsa

Minkét esetben fellép szomszédosság-anomália: sakktábla-szerű mintázat esetén vagy semmi semmivel nem tartozik egybe, vagy a sarkoknál átnyúlnak egymáson a tartományok. Ezért topológiai célokra egyik sem megfelelő.

Megoldja az anomáliát, ha az objektumra 8-as, a háttérre 4-es szomszédságot használunk, de ennek az önkényes asszimetriája nem szerencsés. Jobb a:

6-szomszédosság: egy pixel szomszédai az oldalszomszédok, és valamelyik átló irányában a két sarokszomszéd. Ha a képet megfelelő irányban nyírjuk, ez egy hatszöges szomszédságnak felel meg. A hatszögesen elhelyezkedő pixelek mintavételezési szempontból is jobbak.

6. Ismertessen algoritmust a komponensek megszámlálására

Komponens-címkézés: meghatározuk, hogy melyik pixel melyik összefüggő tartományba tartozik. Ez végezhető:

rekurzívan: kiindulunk egy pixelből, és rekurzívan az azonos színű szomszédaival folytatjuk, vagy

szekvenciálisan: ekkor egyszerre csak két sort kell memóriában tartani, és alkalmazható akkor is, ha adatfolyamként kapjuk a képet.

7. Euler szám definíciója. Algoritmus az Euler szám meghatározására.

definíció: komponensek száma mínusz lyukak száma.

algoritmus: Szeleteljük fel a képet, majd balról jobbra nézve számítsuk az Euler számot.

8. Additív halmaz tulajdonságmérték definíciója. Példák additive halmaz tulajdonságmértékre.

definíció (additív halmaz tulajdonságmérték: ha X, Y a kép pixeleinek részhalmazai, A(X) az Euler-szám értéke az X halmazon, akkor (vagy másképp megfogalmazva: ha X, Y diszjunktak, akkor )

Az Euler-szám és pl. a terület rendelkezik az additív halmaz tulajdonságmértékkel.

9. Lokális operáció hatása az Euler számra. Párhuzamosíthatóság korlátai.

Végiggondolásra érdemes, hogy egy pixel változása - a szomszédoktól függően - hogyan változtathatja az Euler-számot. A lokális műveletek párhuzamosításánál gondot jelent, hogy a tartományok, amiktől függ a hatásuk (pl. hogy hogyan hat egy pixelen végzett változtatás az Euler-számra), átlapolódnak. Két szomszédos pixelen végzett művelet, ha nem egymás után, hanem párhuzamosan hajtjuk végre (és mindkettő feltételét a régi pixelek alapján számoljuk) esetleg nemkívánatos hatással járhat. Pl. keskenyítés: az objektum szélső pixeleit eltávolítjuk; ennek nem kellene az Euler-számot változtatnia. Ha viszont van egy 2 pixel vastag "nyak", akkor, párhuzamosan végezve a keskenyítést, változhat (míg sorosan végezve az egyik eltávolítása után a másiknál az új szomszéd-értékek alapján nem döntenénk az eltávolítás mellett).