Procesarea de imagini folosind programarea paralela. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte l

Documente similare
Algoritmi genetici paraleli. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte laborator. 4. Tema. 1. Ob

Microsoft PowerPoint - Curs_TPI_22_v01.ppt

Procesarea Imaginilor Laborator 3: Histograma nivelurilor de intensitate 1 3. Histograma nivelurilor de intensitate 3.1. Introducere În această lucrar

Microsoft Word _POO_Lab_1_Modificari_v01.htm

OPERATII DE PRELUCRAREA IMAGINILOR 1

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Lucrarea nr. 4 - Algoritmi de sortare şi ordonare Breviar teoretic Un algoritm de sortare este o metoda prin care se aranjează elementele unui tablou

Diapositive 1

Laborator 3

PowerPoint Presentation

Programarea şi utilizarea calculatoarelor

Slide 1

Lucrarea nr. 9 - Liste dublu înlănţuite Breviar teoretic În cadrul elementelor studiate anterior s-a putut observa utilitatea listelor simplu înlănuit

Tablouri (continuare)

Algebra si Geometri pentru Computer Science

Subiectul 1

1 Lucrarea nr. 8 - Structuri de date de tip liste sortate O listă sortată reprezintă un aranjament al înregistrărilor din cadrul listei în funcţie de

E_d_Informatica_sp_MI_2015_bar_02_LRO

Brandbook Regulile de utilizare a stilului corporativ

E_d_Informatica_sp_SN_2014_bar_10_LRO

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

Poo Laboratoare 1 Contents Laborator7 2 1 Colecţii de obiecte în Java Interfaţa Iterator Interfaţa C

Lucrarea 7 Filtrarea imaginilor BREVIAR TEORETIC Filtrarea imaginilor se înscrie în clasa operaţiilor de îmbunătăţire, principalul scop al acesteia fi

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Babeş-Bolyai Cluj-Napoca 1.2 Facultatea Facultatea de Mate

COMPARAREA INFORMAȚIILOR FURNIZATE DE APLICAȚIA ifvolume_pacv7 CU REZULTATELE DETERMINATE CU AJUTORUL GEOMETRIEI PLANE VALIDAREA. VALIDAREA APLICAȚIEI

INFORMAȚII DESPRE PRODUS MULTI-STANDARD SC 2.1 USA: UL-listat (MTW), Canada: CSA (TEW), Europa: <HAR> H07V-K (depinde de secţiune), cupru stanat Lapp

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Babeş-Bolyai Cluj-Napoca 1.2 Facultatea Facultatea de Mate

Slide 1

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Programarea şi utilizarea calculatoarelor

Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII-

CASA CORPULUI DIDACTIC BRAILA PROGRAM DE FORMARE INFORMATICA SI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: TIMOFTI V. AFRODITA COLEGIUL

PowerPoint Presentation

Microsoft Word - Excel_3.DOC

Corespondenţe pal - cant Colecţie de canturi mărită Identitate maximă service 24h ore

proiectarea bazelor de date

Ingineria Sistemelor de Programare

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

SUBPROGRAME

Microsoft Word - PI-L7r.doc

PROGRAMARE ORIENTATA PE OBIECTE

Microsoft Word - Capitolul_07

Fişă tehnică Vane cu presetare manuală LENO MSV-BD Descriere/Aplicaţii LENO MSV-BD este o nouă generaţie de vane manuale pentru echilibrarea debitului

Microsoft Word - CarteC.doc

PPSD

Laborator 10 - Paradigme de Programare Corutine - suport nativ pentru paralelism în Kotlin Înainte de a trece la realizarea unei aplicații utilizând c

Slide 1

MergedFile

Microsoft Word - MANUAL_APP_ROMPOS_V7.docx

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C

I. Partea introductivă Proiectul unității de învățare CONCEPTUL DE MATRICE ŞCOALA: Colegiul Național Petru Rareș Suceava CLASA: a XI a- matematică / a

Cursul 13 Mulţimi Julia Fie f : C C o funcţie complexă şi fie f n = f f f iterata de ordin n a lui f. Peste tot în continuare vom presupune că f este

Matematica VI

CURBE BÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t),

Unitatea: Școala Gimnazială Disciplina: Informatică și TIC Programa școlară aprobată cu OMEN nr.3393 din Profesor: prof. Clasa: a V-a A, B

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Programarea şi utilizarea calculatoarelor

Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

Noțiuni matematice de bază

Laborator Fragments Un fragment reprezintă o porțiune dintr-un Activity. Într-un activity se pot combina mai multe fragmente ți un fragment se poate r

23

INDICATORI AI REPARTIŢIEI DE FRECVENŢĂ

ŞTACHET METALIC de la 50m reducere 5% 100m reducere 10% ţeavă patrată 40x Înalţimea h 20 / 16 (19mm / 21mm) Lungimea L negre 80mm 100mm M

23

FIŞA UNITĂŢII DE CUR S/MODULULUI MD-2045, CHIŞINĂU, STR. STUDENȚILOR, 9/7, TEL: , GRAFICA PE CALCULATOR 1. Date despre unitatea

Paradigme de Programare

Microsoft Word - Sinteza_EtapaIII_Contract 69_IDEI_final_.doc

Microsoft Word - CarteC.doc

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

Declararea variabilelor

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XII 1.Să se scrie în limbajul C/C++ definiţia comp

Realizarea fizică a dispozitivelor optoeletronice

Gestionarea I/E

ANEXA NR. 4 INSCRIPTIONAREA AUTOMOBILELOR CNVCD 1. Panourile şi numere de competiţie Sunt aceleaşi cu numerele de licenţă ale piloţilor. Numerele şi p

Secţiunea 5-6 începători Concurs online de informatică Categoria PROGRAMARE PROBLEMA puncte PERIODIC Se citește un număr natural nenul N. Se ump

Cursul 10 Fractali de tip Newton Vom prezenta în continuare o nouă modalitate de generare a fractalilor, modalitate care îşi are originea într-o probl

Paradigme de programare

Microsoft Word - a5+s1-5.doc

Microsoft Word - Tema 06 - Convertoare analog-numerice.doc

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Ingineria Sistemelor de Programare

Slide 1

4. Detectarea cantelor Calculul gradientului într-o imagine Detectorul de cante Canny Transformata Hough În această lucrare vor fi studiate metode de

Microsoft Word - fisa-Prelucrarea-Digitala_Imaginilor-RO-Anca-Ignat-2018

I

Cursul 12 Şiruri recurente în planul complex Vom studia, în continuare, comportarea în raport cu data iniţială a şirurilor definite prin relaţii de re

gaussx.dvi

Microsoft Word - EN_IV_2019_Matematica_Test_1.doc

Fișă tehnică Servomotoare axiale RV 01 Servomotoarele axiale RV 01 sunt potrivite pentru a controla acțiunea robineților cu 2 sau 3 porturi pentru apl

Fişă tehnică Vane cu presetare manuală LENO MSV-B Descriere LENO MSV-B este o nouă generaţie de vane manuale pentru echilibrarea debitului în sistemel

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

1

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

alb / alb alb / alb translucid alb / gri translucid ivore / alb translucid agava / alb translucid taifun / gri translucid caramel / gri translucid car

Microsoft Word _SwRTc_Proiect_Faza1_v01.htm

Transcriere:

Procesarea de imagini folosind programarea paralela. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte laborator. 4. Tema. 1. Obiectivul lucrarii. Lucrarea de faţă are rolul de a prezenta şi familiariza studentul cu modul de prelucrare a imaginilor date prin tablouri in fisiere text si de folosire a firelor de executie in scrierea de programe paralele ce prelucreaza imagini. La sfârşitul acestei lucrări, studentul va avea posibilitatea să foloseasca notiunile si algoritmii prezentati pentru rezolvarea unor probleme. 2. Notiuni teoretice In continuare vom considera imaginile date printr-un tablou tridimensional cu inaltimea 3, pe fiecare plan m linii si n coloane. Fiecare componenta a tabloului reprezinta luminozitatea pixelului culorii rosu (h=1), verde (h=2) si albastru (h=3) cu coordonate respective. Luminozitatea poate avea valori din multimea,0,1,2,, 255-0 negru... 255 - alb Exemplu m=4, n=5 si tabloul cu intensitatea luminozitatii unei imagini: h=1 (rosu) h=2 (verde) h=3 (albastru) 4 29 123 3 8 66 54 3 3 11 45 78 200 45 98 2 45 67 8 99 4 2 12 3 8 66 5 3 3 11 45 8 100 45 98 2 5 97 8 9 4 9 23 3 8 6 4 3 3 11 5 78 200 45 8 21 4 7 8 11 Intrare

4 5 4 29 123 3 8 66 54 3 3 11 45 78 200 45 98 2 45 67 8 99 4 2 12 3 8 66 5 3 3 11 45 8 100 45 98 2 5 97 8 9 4 9 23 3 8 6 4 3 3 11 5 78 200 45 8 21 4 7 8 11 Iesire 4 29 123 3 8 66 54 3 3 11 45 78 200 45 98 2 45 67 8 99 4 2 12 3 8 66 5 3 3 11 45 8 100 45 98 2 5 97 8 9 4 9 23 3 8 6 4 3 3 11 5 78 200 45 8 21 4 7 8 11 Program secvential import java.io.*; import java.util.*; class imagine1 { public static void main(string[] args) throws IOException { FileInputStream f=new FileInputStream("imagine.in"); InputStreamReader fchar=new InputStreamReader(f); BufferedReader buf=new BufferedReader(fchar); int m, n,i,j,h; String linie; StringTokenizer t;

linie=buf.readline(); t=new StringTokenizer(linie); m=integer.parseint(t.nexttoken()); n=integer.parseint(t.nexttoken()); int a[][][]=new int[4][m+1][n+1]; for(h=1;h<=3;h++) for(i=1;i<=m;i++){ linie=buf.readline(); t=new StringTokenizer(linie); for(j=1;j<=n;j++) a[h][i][j]=integer.parseint(t.nexttoken()); fchar.close(); FileOutputStream g=new FileOutputStream("imagine.out"); PrintStream gchar=new PrintStream(g); for(h=1;h<=3;h++){ for(i=1;i<=m;i++){ linie=""; for(j=1;j<=n;j++) linie=linie+" "+a[h][i][j]; gchar.println(linie); gchar.println(); gchar.close(); 1. Transformări simple ale imaginilor 1.1. Transformarea imaginilor din RGB în nivele de gri Nivelul de gri corespunzător culorii unui pixel se obţine prin aducerea la aceeasi intensitate a celor trei componente ale culorii pixelului respectiv (R-rosu, G-verde, B-albastru). Procedeul se aplică pentru toţi pixelii din imagine. Figura următoare prezintă cele 256 de nivele de gri reprezentate pe 24 biţi/pixel:

Intensitatea comună ale celor trei componente RGB, poate fi obţinută prin următoarea regulă: I = 0.299 R + 0.587 G + 0.114 B 1.2. Negativarea imaginilor Negativarea unei imagini poate fi efectuată transformând componentele culorii fiecărui pixel folosind următoarea regulă: 1.3. Modificarea luminozităţii imaginilor Luminozitatea unei imagini se poate modifica prin adunarea unei valori (D) la componentele culorii fiecărui pixel din imaginea respectivă, având însă grijă să nu se iasă în afara intervalului *0, 255+. Folosind o valoare pozitivă (D >0), se obţine o luminozitate mai deschisă, în timp ce o valoare negativă (D<0) determină o luminozitate mai închisă a imaginii. Modificarea luminozităţii poate fi efectuată folosind următoarea regulă:

2. Histograma unei imagini Histograma unei imagini reprezintă numărul de pixeli (frecvenţa) pentru fiecare intensitate din imaginea respectivă. De exemplu, în figura următoare 84 de pixeli din imagine au intensitatea 5: 4.1 Scalarea Scalarea este o operaţie geometrica care măreste sau micsorează o imagine sau o parte a unei imagini. Micsorarea imaginii se realizează prin înlocuirea unui grup de pixeli din imaginea originală (mărimea grupului este determinată de factorul de scalare), cu un singur pixel în imaginea destinaţie. Acest pixel va avea intensitatea unui anumit pixel din grup, sau intensitatea obţinută prin interpolarea intensităţilor pixelilor din grup (de exemplu intensitatea medie). Figura 7. Metode de micsorare. a) Inlocuirea cu pixelul din dreapta sus. b) Interpolarea folosind valoarea

Mărirea unei imagini este realizată prin replicare sau prin interpolare. Astfel, unui pixel din imaginea originală îi corespunde un grup de pixeli în imaginea destinaţie, care vor avea fie intensitatea pixelului original (din imaginea sursă), fie o interpolare a acesteia cu intensităţile pixelilor invecinaţi. Mărimea grupului este determinată de factorul de scalare. Operaţiile de interpolare, desi sunt mai mari consumatoare de resurse de procesare (ceea ce se traduce prin cresterea timpului de procesare), oferă rezultate superioare din punct de vedere calitativ. 3. Cerinte laborator. Se va verifica fiecare din sursele java prezentate anterior si se vor testa pe mai multe exemple, pentru a observa modul de functionare. Realizarea de implementari pentru problemele propuse. 4. Tema. Să se implementeze tehnicile prezentate anterior folosind algoritmi paraleli. 1. Pentru o imagine data afisati intensitatea cumulata a fiecarui pixel. 2. Realizati negativitatea unei imagini 3. Pentru o imagine si D cunoscute, modificati luminozitatea acesteia. 4. Pentru o imagine data afisati histograma ei. 5. Mariti o imagine data folosind replicarea unui singur pixel si apoi afisati noua imagine. 5. Mariti o imagine data folosind interpolarea si apoi afisati noua imagine.