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:27]
andrei.lambru
— (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: 
- 
-Marcajul introdus pentru imaginea de mai sus este urmatorul: 
- 
-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 detectati aparitia unui marcaj pe baza frontierelor continutului din cele doua imagini, cea in care se afla marcajul si cea  utilizati frontierele din imaginea ce contine marcajul si imaginea ce contin 
- 
-Pentru a testa corectitudinea rezolvarii, puteti utiliza imaginile ce se regasesc la adresa urmatoare: . In interiorul arhivei se regaseste si imaginea ce contine marcajul. 
- 
-===== Notare (200) ===== 
-<note tip> 
-Corectitudinea metodei implementate de voi va fi testata cu un set de imagini similare cu cel mentionat mai sus. Acest set de imagini **NU** contine situatii speciale. In el se vor regasi aceleasi imagini initiale, inainte de aplicarea marcajului, din setul de mai sus, dar cu aparitii ale marcajului la pozitii diferite. Acest set de test va fi publicat in aceasta pagina incheierea termenului de predare a temei, in data de 15 ianuarie, ora 10:00. 
-</​note>​ 
- 
-   * +200p - Corectitudinea generala a metodei 
-   * -50p - Executia programului dureaza mai mult de 10 secunde, dar mai putin de 1 minut 
-   * -200p - Executia programului dureaza mai mult de 1 minut 
-   * -10p - Fiecare aparitie a marcajului ce nu este eliminata din imaginile cu care se va verifica corectitudinea metodei 
- 
-<note tip> 
-Pentru testarea timpului de executie a programului,​ va recomandam, in situatia in care utilizat mediul de dezvoltare Visual Studio, sa compilati proiectul in "​Release"​ si sa porniti aplicatia cu controlul "Start Without Debugging"​ (**CTRL+F5**). 
-</​note>​ 
- 
-===== Bonusuri posibile ===== 
- 
-   * Implementarea unei metode ce utilizeaza procesorul grafic. Timpii de executie trebuie sa respecte limita de 10 secunde. 
-   * Utilizarea unor metode de inteligenta artificiala pentru eliminarea marcajelor din imagine. 
- 
-===== 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.1702650449.txt.gz · Last modified: 2023/12/15 16:27 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