Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Billedbehandling – processering af digitale billeder.

Lignende præsentationer


Præsentationer af emnet: "Billedbehandling – processering af digitale billeder."— Præsentationens transcript:

1 Billedbehandling – processering af digitale billeder

2  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.2 Billedbehandling Lighten BlurDarkenInvert

3  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.3 Billedrepræsentation x y pixel (r, s)  [0..255] 0 ~ sort, 255 ~hvid x  [0..width), y  [0..heigth) 0 0 heigth width

4  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.4 Picture, et billede-interface public interface Picture { // returnerer billedets højde public int getHeight(); // returnerer billedets bredde public int getWidth(); // returnerer billedelementet på position (x, y) public Pixel getPixel(int x, int y); // returnerer en iterator til billedelementerne i billedet public Iterator iterator(); // iterator til billedelementerne til og med afstand 1 fra p public Iterator neighbourhood(Pixel p); // iterator til billedelementerne til og med afstand d fra p public Iterator neighbourhood(Pixel p, int d); // iterator til billedelementerne fra og med afstand id // til og med afstand od fra p public Iterator neighbourhood(Pixel p, int id, int od); public void hide(); public void show(); public void repaint(); }

5  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.5 getHeight public interface Picture { // returnerer billedets højde public int getHeight();... } height

6  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.6 getWidth public interface Picture {... // returnerer billedets bredde public int getWidth();... } width

7  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.7 getPixel public interface Picture {... // returnerer billedelementet på position (x, y) public Pixel getPixel(int x, int y);... } x y

8  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.8 iterator public interface Picture {... // returnerer en iterator til billedelementerne i billedet public Iterator iterator();... }

9  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.9 neighbourhood public interface Picture {... // iterator til billedelementerne til og med afstand 1 fra p public Iterator neighbourhood(Pixel p);... } p

10  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.10 neighbourhood 2 public interface Picture {... // iterator til billedelementerne til og med afstand d fra p public Iterator neighbourhood(Pixel p, int d);... } pd = 2

11  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.11 neighbourhood 3 public interface Picture {... // iterator til billedelementerne fra og med afstand id // til og med afstand od fra p public Iterator neighbourhood(Pixel p, int id, int od);... } pid = 2 od = 3

12  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.12 Simpel billedbehandling Iterator i = picture.iterator(); while ( i.hasNext() ) { Pixel p = (Pixel) i.next(); int oldValue = p.getValue(); int newValue; // calculate newValue // from oldValue p.setPixel(newValue); } picture p

13  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.13 Lighten newValue = oldValue + 30

14  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.14 Lighten, Javakode Iterator i = picture.iterator(); while ( i.hasNext() ) { Pixel p = (Pixel) i.next(); int oldValue = p.getValue(); int newValue; newValue = oldValue + 30; p.setPixel(newValue); } picture p

15  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.15 Invert newValue = 255 - oldValue

16  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.16 Invert, Javakode Iterator i = picture.iterator(); while ( i.hasNext() ) { Pixel p = (Pixel) i.next(); int oldValue = p.getValue(); int newValue; newValue = 255 - oldValue; p.setPixel(newValue); } p picture

17  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.17 Koordinatbaseret gennemløb for (int y=0; y<pic.height(); y++) { // behandl række y } for(int y=0; y<pic.height(); y++) { // behandl række y for (int x=0; x<pic.width(); x++) { // behandl pixel(x, y) } widthx y 0 0 height

18  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.18 Invert, koordinatbaseret public void invert() { // go through all pixels and // invert the colour value for(int y = 0; y < picture.height(); y++) { for(int x = 0; x < picture.width(); x++) { Pixel p = picture.getPixel(x, y); int oldValue = p.getValue(); int newValue; newValue = 255 – oldValue; p.setValue(newValue); } // redisplay the image on screen picture.repaint(); }

19  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.19 Andre billedoperationer (1) brighten Gør billedet lidt lysere darken Gør billedet lidt mørkere flip Spejlvend billedet omkring den horisontale midterakse mirror Spejlvend billedet omkring den vertikale midterakse invert Inverter hver farveværdi. Dvs. 0 bliver til 255, 1 bliver til 254, 2 bliver til 253, etc. rotateL Rotér billedet 90 grader (90 grader mod uret, venstreom) rotateR Rotér billedet -90 grader (90 grader med uret, højreom) thresholding Sæt alle pixels der højst har tærskelværdien til 0 og alle pixels større end tærskelværdien til 255 Parameter: tærskelværdien thresholding Sæt hver pixel til sort (0), grå (127) eller hvid (255) border Sæt en sort ramme omkring billedet Parameter: rammens bredde smoothing Erstat hvert pixel med gennemsnitsværdien i det 3x3 kvadrat det er centrum i

20  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringBilledbehandling.20 Andre billedoperationer (2) oilPainting Erstat hvert pixel med den hyppigst forekommende værdi i det nxn kvadrat det er centrum i Parameter: størrelsen på kvadratet (n) fillImage Fyld billedet med en given farve Parameter: farveværdien drawRect Tegn et rektangel ind på billedet Parametre: øverste venstre og nederste højre hjørne samt en farve fillRect Udfyld et givent rektangel i billedet med en farve Parametre: øverste venstre og nederste højre hjørne af rektanglet samt fyldfarven add Læg et billede til et andet Billeder adderes ved at addere værdierne for korresponderende pixels (pas på grænsen på 255) Parameter: et billede subtract Træk et billede fra et andet Parameter: et billede crop Skær et rektangel ud af et billede og lav dette til et nyt billede Parametre: øverste venstre og nederste højre hjørne på crop-rektanglet


Download ppt "Billedbehandling – processering af digitale billeder."

Lignende præsentationer


Annoncer fra Google