Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Számítógépes grafika és képfeldolgozás

    A tantárgy angol neve: Computer Graphics and Image Processing

    Adatlap utolsó módosítása: 2015. február 2.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Mérnök-informatikus szak (BSc.)
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIIIA316 5 3/1/0/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Szirmay-Kalos László,
    A tantárgy tanszéki weboldala http://cg.iit.bme.hu/portal/oktatott-targyak/szamitogepes-grafika-es-kepfeldolgozas
    4. A tantárgy előadója

    A tantárgyfelelős személy és tanszék:

    dr. Szirmay-Kalos László, Irányítástechnika és Informatika Tanszék

    Tantárgy előadói:

    Név:

    Beosztás:Tanszék, Int.:
    dr. Szirmay-Kalos LászlóEgyetemi tanárIrányítástechnika és Informatika
    dr. Poppe AndrásEgyetemi docensElektronikus eszközök
    5. A tantárgy az alábbi témakörök ismeretére épít - programozási gyakorlat- fizika- analízis- számításelmélet
    6. Előtanulmányi rend
    Kötelező:
    ((TárgyEredmény( ahol a TárgyKód = "BMEVISZA103", ahol a Típus = "JEGY", ahol a Ciklus = tetszőleges, ahol a KépzésKód = tetszőleges) >=2
    VAGY
    TárgyEredmény("BMEVISZAA00", "jegy", _) >= 2
    VAGY
    TárgyEredmény( ahol a TárgyKód = "BMEVIMA1235", ahol a Típus = "JEGY", ahol a Ciklus = tetszőleges, ahol a KépzésKód = tetszőleges) >=2
    VAGY
    TárgyEredmény( ahol a TárgyKód = "BMEVIMA1602", ahol a Típus = "JEGY", ahol a Ciklus = tetszőleges, ahol a KépzésKód = tetszőleges) >=2 )

    ÉS

    ( TárgyEredmény( ahol a TárgyKód = "BMEVIIIA212", ahol a Típus = "JEGY", ahol a Ciklus = tetszőleges, ahol a KépzésKód = tetszőleges) >= 2
    VAGY
    TargyEredmeny("BMEVIIIA212", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény("BMEVIIIAB00", "jegy", _) >= 2
    VAGY
    TargyEredmeny("BMEVIIIAB00", "FELVETEL", AktualisFelev()) > 0
    VAGY TárgyEredmény( ahol a TárgyKód = "BMEVIFO2237", ahol a Típus = "JEGY", ahol a Ciklus = tetszőleges, ahol a KépzésKód = tetszőleges) >= 2))


    ÉS NEM ( TárgyEredmény( "BMEVIIIAB03" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIIIAB03", "FELVETEL", AktualisFelev()) > 0)

    ÉS Training.Code=("5N-A8")

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    Ajánlott:
    A tárgyat csak azok vehetik fel, akik korábban aláírást szereztek a Programozás alapjai 2 és Bevezetés a számításelméletbe 2 tárgyakból.
    7. A tantárgy célkitűzése A tárgy a számítógépes grafika és a képfeldolgozás alapjait mutatja be, megismertet a képi információ előállításának, megjelenítésének, mérésének és feldolgozásának a módszereivel.
    8. A tantárgy részletes tematikája

    1. Alapfogalmak: számítógépes grafika és képfeldolgozás feladatai, szintetikus fényképezőgép, képszintézis. Grafikus alaphardver. Analitikus geometria: Vektorok, Koordináta rendszerek, Pontok. Vektorműveletek implementációja. Egyenes és sík egyenlete.
    2. Geometriai modellezés: Klasszikus görbék. Szabad formájú görbék: Lagrange interpoláció, Bezier approximáció, B-Spline. NUBS és NURBS. Területek. Kvadratikus és paraméteres felületek. Felosztott felületek (Catmull-Clark). Poligon modellezés. Testmodellezés.
    3. Színek: Fény mint elektromágneses hullám. A színérzékelés modellje. Színillesztés. Színrendszerek.
    4/1. Geometriai transzformációk: Elemi transzformációk és mátrixos formalizmusuk. Homogén koordináták. Projektív geometria (ideális pont, Descartes és homogén koordináták viszonya, beágyazott modell). Átfordulási probléma.
    4/2. Virtuális világmodellek: Hierarchikus modell. Színtérgráfok. VRML.
    5. 2D képszintézis: Vektorizáció. Modellezési transzformáció, nézeti transzformáció. Szakaszok és területek vágása. Szakaszrajzolás. Területkitöltés. 2D grafikus rendszerek példa: görbeszerkesztő C++-ban. Kiválasztás. OpenGL, GLUT. Szintaktika, kapcsolat az ablakozó rendszerrel. Ablak megnyitása, callback függvények regisztálása.

    6/1. 3D képszintézis optikai alapmodellje: Fluxus, radiancia, BRDF. Árnyalási egyenlet.

    6/2. Rekurzív sugárkövetés: Metszéspontszámítás. C++ implementáció. Gyorsítás: befoglaló dobozok, reguláris térháló, oktális fa, BSP-fa.
    7. Inkrementális 3D képszintézis. Tesszelláció. Modellezési transzformáció. Nézeti transzformáció perspektív vetítés esetén. Vágás homogén koordinátákban. Takarási probléma a képernyőkoordináta rendszerben. Árnyalás. Textúra leképzés. Bucka leképzés. Árnyékok.
    8. OpenGL és a grafikus hardver. OpenGL primitívek, transzformációk, árnyalás, fényforrások. OpenGL textúrázás. OpenGL csővezeték vezérlése. A grafikus hardver felépítése és közvetlen programozása. Csúcspont, geometria és pixel árnyalók. Cg nyelv. Árnyékszámítás, környezet leképzés. GPGPU, CUDA.

    9. Számítógépes animáció. Mozgás definiciója. Valószerű mozgás. Spline, key-frame, path, fizikai, és motion-capture animáció. Időkezelés az ívhossz mentén. Mechanikai alapok. Ütközésdetektálás és ütközésválasz. Karakter animáció. Forward és inverz kinematika. Bőrözés. Gépi látás alapok. Augmentált valóság.
    10. Számítógépes játékok: Virtuális valóság rendszerek és játékok felépítése. Az avatár. Játék gép (game engine). Űrharc játék megvalósítása. Valószerű hatások: billboarding, részecske rendszerek, fénytérképek. A játékok fizikája. Terepmodellezés. Karakteranimáció (csont és felület morf), MD2 formátum. Az ellenség mesterséges intelligenciája.
    11. Tudományos és orvosi vizualizáció (CT, MRI, PET). Direkt módszerek (térfogat vetítés és térfogati sugárkövetés). Indirekt módszerek: masírozó kockák. Térfogati sugárkövetés Cg nyelvű megvalósítása.
    12. Fraktálok: Hausdorff-dimenzió önhasonló és nem önhasonló objektumokra. Brown mozgás. Káosz. Kaotikus dinamikus rendszerek a komplex sikon. IFS kódolás. Fraktális képtömörítés elve.

    13. Digitális képek felvétele és szűrése és tárolása. Az optikák tulajdonságai. Kamerák. Digitalizálás és visszaállítás. Képjavítási eljárások. Hisztogram kiegyenlítés és transzformációk. Képek szűrése: lineáris eljárások, 2D konvolúció. Valós idejű szűrés. Nemlineáris eljárások: rank és medián szűrés. Képek tömörítése, fájlformátumok.
    14. Digitális képfeldolgozás módszerei. Az élkeresés módszerei. Sobel, Roberts és Laplace operátorok. Vágás küszöbértékkel. Adaptív vágás. Paletta átszínezés. Képjavítás Laplace operátorral. Képek kezelése a Fourier térben. A kép Fourier sorának értelmezése. Térfrekvenciák, térharmonikusok. Szűrés, képélesítés a Fourier térben. Dekonvolúciós képjavítás.

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) 3+1+0. A tárgyban az elmélet alkalmazása különleges hangsúlyt kap. A tárgyalt módszereknél mindig megmutatjuk, hogy azok hogyan implementálhatók C++ nyelven. Ezen kívül a hallgatók megismerik az OpenGL könyvtárat, a GLUT és a Cg nyelv alapjait is. Az önálló programozási munka ösztönzése érdekében a félév során 3 kisfeladatot adunk ki, valamint a hallgatók egy saját nagyfeladatot készíthetnek. A nagyfeladatnak Cg árnyalóprogramot is tartalmaznia kell, a témája szabadon választható, de a tárgyfelelőssel jóváhagyandó. A kisfeladatok és a nagyfeladat eredményét a vizsga eredményébe beszámítjuk. A kisfeladatokat és a nagyfeladatot a félév utolsó hetében, kijelölt időpontban, személyesen meg kell védeni. A kisfeladatok elkészítéséhez on-line konzultációs lehetőséget adunk.
    10. Követelmények

    a. A szorgalmi időszakban 3 kisfeladatot kell önállóan kell megoldani. Az első kisfeladatra max 1 pontot, a másodikra és harmadikra max 2 pontot lehet kapni. A nagyfeladatra max 2 pont adható. Az aláírás feltétele: legalább három pont összegyűjtése.
    b. A vizsgaidőszakban:
    A vizsga írásbeli. A vizsga osztályzatát a házifeladatokra kapott pontok javíthatják, azokat hozottpontként figyelembe vesszük (lásd alább). A kreditpont megszerzésének feltétele: legalább elégséges vizsgaosztályzat elérése.

    A vizsgaeredmények értékelése: Az elégségeshez az összes, 30 pont 40%-át, azaz 12 pontot kell elérni. A jegy kiszámításának módja:

    int Jegy(int vizsgapontok, int hozottpontok) {

       int v = vizsgapontok + min(vizsgapontok, hozottpontok) * 2; 

       if (v < 12) return 1;

       if (v < 15) return 2;

       if (v < 18) return 3;

       if (v < 21) return 4;

       return 5;

    }  

    11. Pótlási lehetőségek

    A kisfeladatokat a kiadás után két héten belül kell leadni, az utolsó kisfeladatot a szorgalmi időszak végéig. Pótlási lehetőség nincs.

    A vizsgák a TVSZ-nek megfelelően pótolhatók.
    12. Konzultációs lehetőségek

    A kisfeladatokhoz on-line konzultációt biztosítunk. 

    13. Jegyzet, tankönyv, felhasználható irodalom

    Szirmay-Kalos László, Antal György, Csonka Ferenc: Háromdimenziós grafika, animáció és játékfejlesztés. ComputerBooks, 2003.

    Szirmay-Kalos László: Számítógépes grafika. ComputerBooks, 1998.

    Székely Vladimír: Képfeldolgozás. Egyetemi jegyzet. 2002.

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    előadási órák42
    Tantermi gyakorlat14
    Félévközi készülés órákra és HF-ra21
    Felkészülés a zárthelyire és HF14
    Vizsgafelkészülés31
    Összesen120
    15. A tantárgy tematikáját kidolgozta
    Név:Beosztás:Tanszék, Int.:
    Dr. Szirmay-Kalos LászlóEgyetemi tanárIrányítástechnika és Informatika