Differences

This shows you the differences between two versions of the page.

Link to this comparison view

spg:teme:2023:02 [2023/12/15 16:11]
andrei.lambru created
— (current)
Line 1: Line 1:
-====== Tema 2 - Eliminarea marcajelor ====== 
- 
-  * **Responsabili:​** Cristi Lambru, Anca Morar, Robert Caragicu 
-  * **Lansare:​** 16 decembrie 2023 
-  * **Termen de predare:** 14 ianuarie 2024, ora 23:55  
-  * **Regulament:​** https://​ocw.cs.pub.ro/​courses/​spg/​regulament_general 
-  * **Notă: Orice informație ce nu a fost acoperită în acest document este la latitudinea voastră!** 
- 
-În cadrul acestei teme va trebui să implementați o metoda de eliminare a unor elemente grafice dintr-o imagine. Elementele ce va trebui sa fie eliminate au scopul de a marca drepturile de autor asupra unei imagini si sunt cunoscute in limba engleza sub numele de "​watermark"​. Un exemplu de imagine ce contine astfel de marcaje se poate vizualiza mai jos: 
- 
-Un set de imagini de test se poate descarca de la adresa urmatoare: . 
- 
-Metoda implementata de voi primeste doua imagini, imaginea ce contine marcajul si cea din care trebuie eliminate aparitiile marcajului. Metoda de obtinere a celei de-a doua imagini este urmatoarea: La pozitii aleatorii in imagine, se introduce imaginea marcajului, dupa urmatoarea regula la nivel de pixel: 
- 
- 
- 
-$$ 
-(r',​g',​b'​) = (r,g,b) + (r_m,​g_m,​b_m) 
-$$ 
- 
-unde (r,g,b) reprezinta canalele de culoare ale unui pixel din imaginea initiala, inainte de aplicarea marcajului, iar (rm,gm,bm) reprezinta canelele de culoare ale unui pixel din imaginea ce contine marcajul. 
- 
-<note tip> 
-Se garanteaza urmatoarele:​ 
-  * Dupa aplicarea formulei de mai sus, niciun canal de culoare al unui pixel modificat, (r',​g',​b'​) nu depaseste valoarea 255. 
-  * Orice pereche din multimea de aparitii ale marcajului in imaginea initiala nu se saprapun intre ele. 
-  * Orice aparitie a marcajului in imagine nu este partiala. Intotdeauna,​ marcajele apar in totalitate in imagine. 
-</​note>​ 
- 
-<note important>​ 
-In rezolvarea temei sunt urmatoarele restrictii: 
-  * Tema trebuie implementata in limbajul de programare C/C++, in situatia in care se realizeaza o rezolvare ce se executa pe unitatea centrala de procesare, CPU, sau intr-un limbaj specializat pentru procesarea pe GPU, precum GLSL. 
-  * **NU** este permisa utilizarea niciunei biblioteci pentru realizarea metodelor de procesare si analiza de imagini in rezolvarea temei. Se pot utiliza biblioteci pentru alte aspecte ale rezolvarii, precum incarcarea si salvarea fisierelor de tip imagine. 
-  * **NU** este permisa utilizarea unui alt limbaj de programare in afara celor mentionate. 
-</​note>​ 
- 
-===== Metoda recomandata ===== 
- 
-<note tip> 
-Abordarea urmatoare este doar o recomandare. Se poate utiliza orice alta metoda ce obtine un rezultat corect si are o executie mai mica de 10 secunde pe imaginile de test mentionate mai sus. 
-</​note>​ 
- 
-Metoda recomandata este sa dete utilizati frontierele din imaginea ce contine marcajul si imaginea ce contin 
- 
-<​note>​ 
-La desenarea conturului în cubemap, de fiecare dată se va lua în considerare vectorul de vizualizare corespunzător feței curente a cubului (de exemplu, pentru fața X pozitivă se va considera vectorul $(1,0,0)$). 
-</​note>​ 
- 
- 
-===== Notare (250) ===== 
-   * Desenarea contururilor (90p in total) 
-       * Verificarea dacă un vârf este orientat sau nu către observator (20p) 
-       * Determinarea muchiilor triunghiului care conțin un punct de pe contur (20p) 
-       * Modificarea vectorului de vizualizare în funcție de fața curentă a cubemap-ului (10) 
-       * Determinarea poziției punctelor de pe contur prin interpolare și emiterea primitivelor (40p) 
-   * Sistemul de particule (80p in total) 
-       * Fiecare particulă are viteză și delay diferite (15p) 
-       * Fiecare particulă urmărește traiectoria unei curbe Bezier (50p) 
-       * Curbe Bezier diferite în funcție de ID-ul particulei (15p) 
-   * Desenarea pe fețele cubemap-ului din framebuffer (80p in total) 
-     * Generarea matricilor de vizualizare din perspectiva fiecarei fete a cubemap-ului din framebuffer (20p) 
-     * Desenarea si colorarea geometriei din directia fiecarei fete a cubemap-ului din framebuffer (30p) 
-     * Desenarea diferită (a mediului înconjurător,​ a conturului, a mediului + sistemul de particule) la apăsarea unei taste (10p) 
-     * Salvarea imaginilor rezultate in framebuffer (10p) 
-     * Aplicarea texturii cubemap-ului din framebuffer pe oglinda (10p) 
- 
-===== Bonusuri posibile ===== 
- 
-   * Alte efecte interesante aplicate scenei 
-===== Indicații suplimentare ===== 
- 
-Tema va fi implementată în OpenGL și C++. Este indicat să folosiți framework-ul și Visual Studio. ​ 
- 
-Pentru implementarea temei, in folderul **src/​lab_m2** puteti crea un nou folder, de exemplu Tema1, cu fisierele Tema1.cpp si Tema1.h (pentru implementare POO, este indicat sa aveti si alte fisiere). Pentru a vedea fisierele nou create in Visual Studio in Solution Explorer, apasati click dreapta pe filtrul lab_m2 si selectati Add→New Filter. Dupa ce creati un nou filtru, de exemplu Tema1, dati click dreapta si selectati Add→Existing Item. Astfel adaugati toate fisierele din folderul nou creat. In fisierul lab_list.h trebuie adaugata si calea catre header-ul temei. De exemplu: #include “lab_m2/​Tema1/​Tema1.h” 
- 
-===== Arhivarea ​ proiectului ===== 
- 
-<​note>​ 
-  * In mod normal arhiva trebuie sa contina toate resursele necesare compilarii si rularii 
-  * inainte de a face arhiva asigurati-va ca ati curatat proiectul Visual Studio: 
-      * click dreapta pe proiect in **Solution Explorer** -> **Clean Solution** 
-      * si stergeti folderul __**/​build/​.vs**__ (daca nu il vedeti, **este posibil sa fie ascuns**) 
-    * SAU stergeti complet folderul __**/​build**__ 
-  * in cazul in care arhiva tot depaseste limita de 50MB (nu ar trebui), puteti sa stergeti si folderul __**/​deps**__ sau __**/​assets**__ intrucat se pot adauga la testare. Nu este recomandat sa faceti acest lucru intrucat ingreuneaza mult testarea in cazul in care versiunea curenta a librariilor/​resurselor difera de versiunea utilizata la momentul scrierii temei. 
-</​note>​ 
- 
  
spg/teme/2023/02.1702649515.txt.gz · Last modified: 2023/12/15 16:11 by andrei.lambru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0