Biblioteca utils.h contine niste functii ajutatoare de care vom avea nevoie mai incolo. (Practic micunealta secreta) Utilizarea functiilor este mai bine definita in comentariile codului.
Biblioteca rgb.h contine structura de pixel cu cele 3 culori (RGB), insa si o structura de tip BIG_RGB, unde culorile pot atinge valori de tip long long, pentru a-mi calcula culoarea medie (va exista acel overflow cand adunam culorile) Utilizarea functiilor este mai bine definita in comentariile codului.
Biblioteca de baza in care definim structura nodului de arbore, arborele cuaternar in sine si structura de coada + instructiunile aferente acestora. Am avut nevoie de coada pentru a folosi BFS pentru indexarea nodurilor, pentru inserarea in vector. Utilizarea functiilor este mai bine definita in comentariile codului.
In functia main ne vom folosi de argumentele primite in linia de comanda si vom apela functiile de care avem nevoie. Nimic special, vedem ce am primit si in functie de acesti parametri, rezolvam ce ni se cere.
- Executabil: quadtree
- Parametrii:
-- -c <input_file> <output_file> ---> Compreseaza imaginea intr-un fisier binar (Folositoare la transportul a mai multe poze) Factorul ajuta la reducerea dimensiunii binarului, cu costul scaderii calitatii imaginii.
-- -d <input_file> <output_file> ---> Decompreseaza un fisier binar intr-un fisier ppm.
-- -m <h / v> <input_file> <output_file> ---> compreseaza imaginea cu factorul dat, apoi o decompreseaza si o roteste (H)orizontal sau (V)ertical
-- -s <input_file> <output_file> ---> aplica filtrul sepia asupra imaginii
-- -g <input_file> <output_file> ---> aplica filtru grayscale asupra imaginii
-- -r <input_file> <output_file> ---> taie un procent din imagine