Esercitazione: elaborare immagini bitmap
Transcript
Esercitazione: elaborare immagini bitmap
Esercitazione: elaborareimmaginibitmap PierpaoloLore+ 2015-2016 1 Sommario • • • • • • • • Immaginidigitaliepixel Formatobitmap Le;uraescri;uradibmp Rappresentazionedelcolore Modificareicolori Convoluzione Applicaredeifiltri ... 2015-2016 2 ImmaginiDigitali • Rappresentazionenumericadiunaimmagine2D – +picamentebinaria • La+picarappresentazionesichiamaraster – l'immagineèrappresentatadauninsiemefinitodielemen+ elementari:ipixel • abbreviazionediPictureELement • ipixelsonoglielemen+piùpiccoliinunaimmagine – ognipixelrappresentala"luminosità"diundeterminatocolore inunpuntospecifico Ogniquadra+noèunpixel 2015-2016 3 Definizioneerisoluzione • Definizione – numerodipixelchecos+tuisconol'immagine, – dimensioneinforma+ca • numerodicolonnexnumerodilinee • Es.640x480 • Risoluzione – numerodipun+perunitàdisuperficie – rapportotrailnumerodipixeleladimensionerealedellasuarappresentazione suunsupportofisico – DPI(DotsPerInch)oPPI(PixelPerInch) – Inch:ilpollicevale2.54cm • 300dpi:300x300pixelperpollicequadrato – 90000pixelperpollicequadrato – Point:0.353mm • derivadallarisoluzione72dpi • unpixelvale1"/72 2015-2016 4 Fileperimmagini • Fileconunformatostandardidoneoacontenereimmagini – contengonoleinformazioneperpotervisualizzareostampare l'immagine – ida+possonoesserenoncompressi,compressiove;oriali • Raster – JPEG,PNG,TIFF,GIF,BMP,PSD • Ve;oriali – CGM,SVG,AI • Formatoecompressione – BMP:senzacompressione(maanchecon) – GIF,PNG:forma+compressisenzaperdita – JPEG:compressoconperdita 2015-2016 5 Pesodiunimmagine • Ladimensionedelfiledipendedalnumerodipixeledalcomesi rappresentailcolore(bitperpixel) – profonditàdelcolore • Ladimensionedelfiledipendeanchedallaeventualecompressione edall'algoritmodicompressioneu+lizzato • Senzacompressione:640*480concoloria24bit – 640*480*24=7,372,800bits=921,600bytes=900KiB 2015-2016 6 FormatoBitmap • FormatoRasterpermemorizzazioneindipendentedaldevice – fa;odallaMicroso> • introdo;onel1990conwindows3.0 – pensatoperapplicazioniinWindowsedOS2 – notoanchecomedeviceindependentbitmap(DIB) • Neesistonotanteversioni – lapiùsempliceèlaV3 – laV4eV5fa;eperwin98 • aggiungonoilcanalealfaedaltro • pocou+lizzate • Supportaimmagini – dimensioneerisoluzionearbitraria – monocroma+cheoacolori – varieprofonditàdicolore • 1,4,8,16,24o32bitperpixel – possibilecompressione(V4V5) 2015-2016 7 Filebmp • Headerbase – BITMAPFILEHEADER – 14byte – +poimmagine,dimensione,offset • Infoheader – BITMAPINFOHEADER – 40byte – dimensioneimmagine,righe,colonne,ppp • Pale;e • ImageData – Arraydeipixel 2015-2016 8 Imagedata ID(W,H) • Lasezioneimagedatacon+enelasequenza deida+rela+viaipixel • L'immagineèunamatriceWxHdinumeri 2(1,2) 1(1,1) 3(1,3) 4(1,4) 5(2,1) 6(2,2) – Wwidth,Hheight • Inumerirappresentanoicolorideipixel 7(2,3) 8(2,4) 9(3,1) height 13 4 15 16 10(3,2) 11(3,3) 9 10 11 12 2 5 6 7 8 13(4,1) 1 1 2 3 4 14(4,2) 3 1 2015-2016 14 2 3 4 width 12(3,4) 15(4,3) 16(4,4) 9 Coloreepadding • Ognipixelèrappresentatodaalcunibyte – es.24bit(3byte):FFFFFF – nell'headerc'èilcampoBitsperpixelche specificaquan+byteperpixelsonousa+ • Ognirigadell'arrayda+deveesseremul+plo di4byte – Senonloèsifapadding – Esempio • immagine8x8-riga:3*8=24 • immagine10x10–riga3*10=30 – rigada32bytepadding2byte 2015-2016 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 10 Leggere unabitmap 2015-2016 11 Leggere unabitmap Leggoi54bytedell'header 2015-2016 12 Leggere unabitmap Leggolasizedelfile • offset2 • dimesione4byte 2015-2016 13 Leggere unabitmap Loopsullerighe Loopsullecolonne Leggoivalori dicoloredelpixeli,j 2015-2016 14 Esercizio • Leggereestamparele64triplecherappresentanoicolori diognibitdell'immagineimg1.bmp – leggereheader54byte – leggerearrayimmagine4x4 – ognipixelèrappresentatocon3byte • Immagine – h;p://ppl.eln.uniroma2.it/finf/img1.bmp 2015-2016 15 Profonditàdelcolore • biancoenero: – immagazzinandounbitperognicasella,èpossibiledefinireduecolori(neroo bianco). • 16colorio16livellidigrigio: – immagazzinando4bitinognicasella,èpossibiledefinire24possibilitàdi intensitàperognipixel,cioè16sfumaturedigrigiochevannodalneroalbianco oppure16coloridiversi. • bitmap256colorio256livellidigrigio: – immagazzinandounbyteinognicasella,èpossibiledefinire28intensitàdipixel, cioè256sfumaturedigrigiochevannodalneroalbiancooppure256colori diversi. • pale;adeicolori – sidefinisceunatavolozzadeicolorichel'immaginecon+eneadognunodeiquali èassociatounindice,adognipixelsiassocial'indice • Conindicia8bitèpossibiledefinire256coloriu+lizzabili • Truecolor – questarappresentazioneperme;edirappresentareun'immaginedefinendoi coloricomponen+(rosso,verdeeblu)perognipixel. 2015-2016 16 Rappresentazionedelcolore • Perpoterscambiareinformazionicolorimetricheè necessarioforniredellerappresentazionimatema+che – associounnumeroaduncolore • Lerappresentazionipiùnotesono – RGB(Red,Green,Blue) – HSL(Hue,Satura+on,Luminance) – CMYK(Cyan,Magenta,YellowandblacK). – YUV 2015-2016 17 Sintesidicolori • Sintesiaddi+va – aggiungadellecomponen+dellaluce • Lecomponen+dellalucesonodire;amenteaggiunte all'emissione,èilcasodeimonitorodelletelevisionia colori – Seaggiungonoletrecomponen+Rosso,verde,blu (RVB),siooeneilbianco – L'assenzadellecomponen+dailnero. – Icolorisecondarisonoilciano,ilmagentaedilgiallo datoche • Sintesiso;raova – Lecomponen+sonoassorbitedallamateria – Questoprocessoèusatoinfotografiaeperla stampadeicolori – Icolorisecondarisonoilblu,ilrossoeilverde 2015-2016 18 CodificaRGB • CodificaRed,Green,Blue – elaboratonel1931dallaCommissioneInternazionale dell'Illuminazione – basatasulfunzionamentodell'occhioumanocheha rece;oridis+n+pericolori • Codificasuunbyteognicomponentedicolore – 256perognicomponentedicolore – 16.777.216combinazionipossibili • l'occhioumanonedis+nguecirca2milioni. • Letrecomponen+dicoloresisommano – sintesiaddi+va 2015-2016 19 Coloricomuni R G 0 0 255 0 0 255 0 0 255 255 255 0 0 255 255 128 128 255 128 128 64 64 128 128 192 192 255 255 2015-2016 B 0 0 0 255 0 255 255 128 128 255 64 128 192 255 HexValue 000000 FF0000 00FF00 0000FF FFFF00 FF00FF 00FFFF FF8080 80FF80 8080FF 404040 808080 C0C0C0 FFFFFF Color Black Red Green Blue Yellow Magenta Cyan BrightRed BrightGreen BrightBlue DarkGrey IntermediateGrey BrightGrey White 20 RappresentazioneHLS • tonalità(iningleseHue) – descrivelasensazionedelcolore,inaltreparole seilcoloreèrosso,giallo,verde,ciano,blu, magenta... – comeperlospe;rodilucevisibile – valoreda0a360gradi • Saturazione – gradoincuilatonalitàdifferiscedaungrigio neutro – 0%,grigio,al100%coloreintenso – Quantopiùlospe;rodellaluceèconcentrata intornounalunghezzad'onda,piùsaturoil coloresarà. • Luminosità – illuminazionedelcolore – allo0%ilcoloreècompletamentenero,al50% ilcoloreèpuro,al100%diventabianco 2015-2016 21 Operazionisuicolori • Nega+ve – 255-C – Ritornailcoloreopposto.Es.biancodiventanero,rossodiventaciano • Darken • Brighten – C/porC-p – Dividereilcoloreperunacostante(maggioredi1),oso;rarreunacostante,perrenderlopiùscuro. – C*porC+p – Mol+plicareilcoloreperunacostante(maggioredi1),oaggiungereunacostanteadesso,perrenderlo piùluminoso. • Greyscale – (R+G+B)/3 – Calcolarelamediadei3canalipero;enereuncoloregrigioconlastessaluminosità. • RemoveChannel – R=0,G=0eB=0 – Impostandounoopiùcanalia0,rimuoverecompletamentequelcomponentecoloredallafoto. • SwapChannels – R=G,G=R,... – Scambiareivalorididuecanalidicolorepero;enereun'immagineconuncolorecompletamente diverso. 2015-2016 22 Modifiche aicolori Originale C/2 C*2 C-50 C+50 2015-2016 Nota:ilminimoè0edilmassimo255–alcunicolorisaturano 23 Modifiche aicolori B=0 ScaladiGrigio G=0 R=0 Nega+vo 24 2015-2016 Copiare unimmagine 2015-2016 25 Copiare unimmagine 2015-2016 26 Esercizio • Leggerel'immagineimg2.bmp(200x132)esalvarele seguen+immaginimodificate – Scaladigrigio – Immaginenega+va – Immaginesenzaincanalerosso • Immagine – h;p://ppl.eln.uniroma2.it/finf/img2.bmp 2015-2016 27 Convoluzione Immagine Immaginerisultante 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 2 2 1 1 0 0 0 1 2 2 3 2 2 1 0 1 2 3 2 2 1 1 0 1 2 2 1 2 1 0 Kernel 4 0 0 0 0 0 0 0 -4 0 1 1 1 1 2 1 0 0 0 0 1 1 1 0 0 2015-2016 28 Convoluzione Immagine Immaginerisultante 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 2 2 1 1 0 0 0 1 2 2 3 2 2 1 0 1 2 3 2 2 1 1 0 1 2 2 1 2 1 0 Kernel 8 4 0 0 0 0 0 0 0 -4 0 1 1 1 1 2 1 0 0 0 0 1 1 1 0 0 4*0+0*1+0*1+ 0*0+0*1+0*1+ 0*0+0*1+(-4*2) =8 2015-2016 29 Convoluzione Immagine Immaginerisultante 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 2 2 1 1 0 0 0 1 2 2 3 2 2 1 0 1 2 3 2 2 1 1 0 1 2 2 1 2 1 0 Kernel 8 8 4 0 0 0 0 0 0 0 -4 0 1 1 1 1 2 1 0 0 0 0 1 1 1 0 0 2015-2016 30 Convoluzione Immagine Immaginerisultante 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 2 2 1 1 0 0 0 1 2 2 3 2 2 1 0 1 2 3 2 2 1 1 0 1 2 2 1 2 1 0 Kernel 8 8 0 -4 0 0 4 0 0 0 0 0 0 0 -4 0 1 1 1 1 2 1 0 0 0 0 1 1 1 0 0 2015-2016 31 Operazionediconvoluzione a b c f * k4 k5 k6 h i k7 k8 k9 d e g k1 k2 k3 = p (k1*i)+(k2*h)+(k3*g)+ (k4*f)+(k5*e)+(k6*d)+ (k7*c)+(k8*b)+(k9*a) p=min(max(p*factor+bias,0),255) normalizzazioneecorrezione 2015-2016 32 Filtri Originale BLUR 0 0.2 0 Sharpen 0.2 0.2 0.2 0 0.2 0 Edgedetec+on 1 1 1 1 -7 1 1 1 1 -1 -1 -1 -1 9 -1 -1 -1 -1 -1 -1 0 -1 0 1 0 1 1 Emboss bias=128 2015-2016 Dovenonindicato:factor=1,bias=0 33 Esercizio • Leggerel'immagineimg3.bmpesalvareleseguen+ immagini – Immagineconapplicatoilfiltrodiblur – Applicarealtrifiltri – ... – Immaginecapovoltaver+calmente • Immagine – h;p://ppl.eln.uniroma2.it/finf/img3.bmp – h;p://ppl.eln.uniroma2.it/finf/fil+mgst.c 2015-2016 34 2015-2016 35 2015-2016 36 2015-2016 37 2015-2016 38 2015-2016 39 Filebmp:img1.bmp 2015-2016 40 Esempiodi leMuraheader h;ps://en.wikipedia.org/wiki/BMP_file_format 2015-2016 41 Esercizio • Leggerel'headereida+delleseguen+immagini • Immagine – h;p://ppl.eln.uniroma2.it/finf/img4.bmp – h;p://ppl.eln.uniroma2.it/finf/img5.bmp • Necessitapadding 2015-2016 42
Documenti analoghi
Il formato BITMAP
visualizzato con i colori RGB del primo elemento delle palette, se 1
con il secondo.
Quando il numero di bit per pixel è uguale ad 4, l’immagine ha un
massimo di 16 colori e le palette contengono...