PIRF Prelucrarea imaginilor & recunoasterea formelor - Tema de casa pt. Laborator 2 1. Construiti o imagine de dimensiune 512x512 rere!entand un atrat centrat cu latura de 12" de ixeli. a. #enerati $ ast%el de imagini avand atratul central cu nivelul de gri 12", iar %ondul &, resectiv %ondul "&, 1'&, 255. (. A%isati imaginile %olosind %unctiile image(), imagesc(), imshow(), colormap(gray()). c. A%isati si comarati cele $ imagini. Comentati. #eneram imaginea de 512x512 %olosita ca %undal dua ce am creat %unctia urmatoare in directorul C:\Program Files\MATLAB\R2!!"\pa#ra#.m . )umele %isierului tre(uie sa %ie neaarat atrat.m entru ca aelarea sa %unctione!e: function a=patrat(N,F) for i=1:N; for j=1:N; a(i,j)=F; end end end Introducem comen!ile urmatoare in Command *indo+: ,,a-atrat.512,&/0 ,, image.a/ ,, colorma.gra1.25'// Vom o(tine imaginea din %igura alaturata .,,/: 2entru a rere!enta un atrat cu latura de 12" de ixeli in interiorul imaginii de 512x512 vom crea %isierul C:\Program Files\MATLAB\R2!!"\pa#ra#i$pa#ra#.m continand %unctia: function b=patratinpatrat(N,L,F) for i=1:N; for j=1:N; b(i,j)=F; end end L1=(512-128)/2; C1=L1; for i=L1:L1128; for j=C1:C1128; b(i,j)=L; end end Student: Moraru Octavian 1 Telecomunicatii, Anul IV Student: Moraru Octavian 3ua ce am scris si salvat %unctia, ne intoarcem in Command *indo+ si introducem urmatoarele comen!i de aelare: ,, (-atratinatrat.),4,5/0 ,, image.(/ In %unctia atratinatrat.),4,5/ avem: 6) este marimea imaginii .512 in ca!ul nostru/ 64 este latura atratului centrat in imagine .12" in ca!ul nostrul/ 65 este culoarea %undalului imaginii noastre .&, "&, 1'&, 255/, unde: 5-& este valoarea entru negru 5-255 este valoarea entru al( imaculat Toate valorile curinse intre & si 255 sunt nivele de gri, tinand cont de %atul ca am %olosit aleta de culori colorma.gra1.25'//. In continuare vom a%isa aceeasi imagine de mai multe ori %olosind di%erite niveluri de gri din aleta colorma.gra1.25'/. Vom %olosi valorile &, "&, 1'&, 255 entru a sesi!a di%erentele de nivel de gri mai usor, avand in vedere ca un oc7i uman er%ect distinge in 8ur de 2&& de niveluri di%erite de gri. 2entru: ,, (-atratinatrat.512,12",&/0 ,, image.(/ O(tinem: 2entru ,, (-atratinatrat.512,12","&/0 ,, image.(/ O(tinem: 2entru: ,, (-atratinatrat.512,12",1'&/0 ,, image.(/ O(tinem: Student: Moraru Octavian 2 Telecomunicatii, Anul IV Student: Moraru Octavian 2entru ,, (-atratinatrat.512,12",255/0 ,, image.(/ O(tinem: O(servam cum atratul din centru este scos mai mult sau mai utin in evidenta in %unctie de nivelul de gri %olosit entru %undal. Acum dua ce ne9am 8ucat cu di%eritele niveluri de gri la unctul .a/, trecem la unctul .(/ unde vom incerca sa remarcam di%erentele dintre comen!ile image. /, imagesc. /, ims7o+. /, colorma.gra1. //. Introducem in Command *indo+ urmatoarele comen!i: ,,(-atratinatrat.512,12",&/0 ,,colorma.gra1.25'//0 Acum vom a%isa imaginea lui ( %olosind e rand image. /, imagesc . / si ims7o+ . /: 2entru image.(/ o(tinem : 2entru imagesc.(/ o(tinem : Student: Moraru Octavian : Telecomunicatii, Anul IV Student: Moraru Octavian 2entru ims7o+.(/ o(tinem : Avand ca si comaratie cele : imagini de mai sus, o(servam ca image.(/ si imagesc.(/ a%isea!a imaginea e o axa de coordonate .x,1/, cu di%erenta ca imagesc.(/ scalea!a datele imaginii ast%el inca sa %oloseasca valorile minime si maxime din colorma.gra1.25'//, in ca!ul nostru negru .&/ si al( .255/. Comanda ims7o+. / nu a%isea!a axa de coordonate .x,1/, ci in sc7im( a%isea!a imaginea la marimea ei naturala .512x512 ixeli/. 2. ;en!ile lui Mac7. #enerati o imagine de dimensiune 512x512 rere!entand o mira cu m (en!i ori!ontale .m-$91'/. a. 2riviti cu atentie imaginea a%isata. Comentati. Student: Moraru Octavian $ Telecomunicatii, Anul IV Student: Moraru Octavian (. <ere!entati gra%ic cu %unctia plo#() ro%ilul liniei 25'. 5igurati ro%ilul liniei erceute de dumneavoastra. In %isierul C:\Program Files\MATLAB\R2!!"\"e$%imach.m scriem %unctia entru a%isarea (en!ilor lui Mac7 .)-marimea imaginii, (-numarul de (en!i Mac7/: function c=ben!i"ac#(N,b) for i=1:N; for j=1:N; c(i,j)=$; end end L=25%; d=N/b; for i=1:b; c(1:N,(i-1)&d1:i&d)=L/b&(i-1); '=1L/b&i; end In Command *indo+ introducem urmatoarele come!i: ,,c-(en!imac7.512,'/ 6Atentie sa nu unem 0 dua ce inc7ideti arante!a ,,image.c/ O(tinem o imagine de 512x512 ixeli cu ' (en!i, rere!entand o succesiune ascendenta de nivele de gri inceand de la stanga .negru/ sre dreata .al( imaculat/. In continuare vom %olosi comanda lot.c/ si vom o(tine gra%icul din imaginea de mai 8os: Student: Moraru Octavian 5 Telecomunicatii, Anul IV Student: Moraru Octavian :. Scrieti o %unctie care sa genere!e imaginea unui disc de ra!a < si nivel de gri A centrat e un %undal uni%orm de nivel de gri ;. 5olositi %unctia entru a o(tine imaginea alaturata. 2riviti cu atentie %igura si comentati. In %igura din dreata avem o imagine atrata cu un %undal al( si $ cercuri negre este care are a %i suraus un alt atrat ase!at in centrul imaginii, acoerind cate un s%ert din cercuri la colturile atratului aarent. 2atratul in sine nu exista deoarece este de aceeasi culoare cu %undalul, insa mintile noastre il sugerea!a ca urmare a %atului ca are colturile marcate, acestea %iind sugerate de cele $ cercuri ase!ate in mod convena(il. Mai intai vom crea o %unctie e care o vom numi in mod intuitiv d-cercinatrat.),<,4,5/ in %isierul C:\Program Files\MATLAB\R2!!"\cerci$pa#ra#.m si vom salva continutul acestui %isier: function d=cercinpatrat(N,(,L,F) Student: Moraru Octavian ' Telecomunicatii, Anul IV Student: Moraru Octavian for i=1:N; for j=1:N; if(i-N/2))2(j-N/2))2*()2; d(i,j)=L; e'+e d(i,j)=F; end end end
In %unctia noastra avem urmatorii arametri: )-marimea imaginii <-ra!a cercului 4-culoarea din interiorul cercului 5-culoarea de %undal a imaginii Avand creata de8a %unctia, acum introducem in Command *indo+ urmatoarele date: ,,d-cercinatrat.512,12",&,255/0 ,,image.d/ Ast%el, o(tinem imaginea urmatoare: 3aca vom introduce aoi in Command *indo+ comen!ile: ,,e-=d d0 d d> ,,image.e/ Vom o(tine imaginea urmatoarea: Student: Moraru Octavian ? Telecomunicatii, Anul IV Student: Moraru Octavian Continuand cu introducerea de date in Command *indo+, vom adauga comen!ile: ,, e.25':512@25',25':512@25'/-2550 ,, image.e/ Ast%el o(tinem imaginea la care tre(uia sa a8ungem: $. Comentati ce o(servati in %igurile de mai 8os. Incercati sa generati ast%el de %iguri %olosind matla(. Student: Moraru Octavian " Telecomunicatii, Anul IV Student: Moraru Octavian In imaginea de mai sus avem in artea stanga 2 drete de aceeasi lungime, insa cea de sus are a avea o lungime mai mica decat cea a dretei de dedesu(t ca urmare a %atului ca var%urile celor 2 drete sunt marcate intr9un mod care sa acaleasca oc7iul uman si sa sugere!e acesta ilu!ie su(tila. In artea dreata a imaginii avem un atrat la care sunt trasate cele 2 diagonale, iar mi8loacele laturilor ouse sunt unite rin 2 segemente. 5atul ca aceste $ segmente sunt discontinue in aroiere de centrul atratului sugerea!a existenta unui cerc al carui contur nu este trasat. Cercul in sine nu exista dar minte noastra totusi il ercee ca %iind existent. Student: Moraru Octavian A