SHARE
TWEET

Untitled

a guest Oct 23rd, 2019 88 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <QApplication>
  2. #include "ImageGrid.h"
  3. #include "operatii.h"
  4.  
  5. /* Shortcuts:
  6.  
  7. Scroll wheel - zoom in/out
  8.  
  9. Left button drag - deplasare in imagine cand aceasta este mai mare decat fereastra
  10.  
  11. Ctrl+A - activeaza / dezactiveaza ajustarea automata a dimensiunii imaginii
  12.          pe care se afla cursorul mouse-ului
  13.  
  14. Shift+A - activeaza / dezactiveaza ajustarea automata a dimensiunii
  15.           tuturor imaginilor
  16.  
  17. Ctrl+R - reseteaza imaginea curenta la dimensiunile sale initiale
  18.  
  19. Shift+R - reseteaza toate imaginile la dimensiunile lor initiale
  20.  
  21. */
  22.  
  23. int main(int argc, char *argv[])
  24. {
  25.     QApplication a(argc, argv);
  26.  
  27.     /* generam o fereastra care va contine una sau mai multe imagini
  28.        plasate sub forma unei matrici 2D */
  29.     ImageGrid *grid = new ImageGrid("Prelucrarea imaginilor");
  30.  
  31.     QString imageDir = "Images/";
  32.     QString imageFile(imageDir + "lena512.bmp");
  33.  
  34.     /*adaugam prima imagine, cea initiala, citita din fisier,
  35.     in pozitia stanga-sus (linia 0, coloana 0)*/
  36.     grid->addImage(imageFile, 0, 0);
  37.  
  38.     /* extragem imformatiile necesare din imagine:
  39.     dimensiunile ei si un sir de octeti care contine valorile
  40.     intensitatilor pentru fiecare pixel */
  41.     int w, h;
  42.     unsigned char* img = Tools::readImageGray8(imageFile, w, h);
  43.    
  44.     // exemplu de operatie: negativarea unei imagini
  45.  
  46.     /*parcurgem imaginea pixel cu pixel si determinam valoarea complementara
  47.     pentru fiecare intensitate
  48.  
  49.     se recomanda ca acest gen de operatie sa se implementeze intr-o functie
  50.     separata sau intr-o alta clasa
  51.     */
  52.     double filter1[3][3] = { { 0.0,0.2,0.0 },{ 0.2,0.2,0.2 },{ 0.0,0.2,0.0 } };
  53.     double filter2[5][5] = { { 0,0,1,0,0 },{ 0,1,1,1,0 },{ 1,1,1,1,1 },{ 0,1,1,1,0 },{ 0,0,1,0,0 } };
  54.  
  55.  
  56.     //unsigned char* negated = negateImage(img, w, h);
  57.     unsigned char *conv1 = convolutie1(img, w, h, filter1);
  58.     unsigned char *conv2 = convolutie2(img, w, h, filter2, 5, 5);
  59.  
  60.  
  61.     /* afisam imaginea astfel obtinuta la dreapta celei initiale;
  62.     parametrii cu valorile 0, 1 semnifica prima linie, respectiv
  63.     a doua coloana a imageGrid-ului
  64.     */
  65.     //grid->addImage(negated, w, h, 0, 1, "negativ");
  66.     grid->addImage(conv1, w, h, 0, 1, "convolutie1");
  67.     grid->addImage(conv2, w, h, 0, 2, "convolutie2");
  68.  
  69.     grid->show();
  70.    
  71.     return a.exec();
  72. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top