Billedbehandling – processering af digitale billeder.

Slides:



Advertisements
Lignende præsentationer
Videregående pc-vejledning
Advertisements

Velkommen til Softwarekonstruktion
Videregående pc-vejledning Modul 08: Billeder 1 60+Bornholm.
Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal.
Gråskala.
1 Rekursion og algoritmedesign. 2 Rekursion Rekursiv definition af X: X defineres i termer af sig selv. Rekursion er nyttig, når en generel version af.
CSS ver. 2 Rikke Møller-Poulsen. Visning af billeder?!? Er der stadig nogen, der har problemer med at få vist billeder på deres site?
Planfejning.
Videregående pc-vejledning Modul 10: Sådan gør du 60+Bornholm.
Forelæsning 3.2 Billedredigering (bl.a. brug af for-løkker)
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Søgning.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSøgning.2 Søgeproblemer... Søgning efter fil(er) Søgning i databaser.
Sweep-algoritmer. DAIMIIntroducerende objektorienteret programmeringsweep.2 Datatypen Sequence Oprette Sequence() Sequence(s, l, h) Kopiere Sequence clone()
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering9B.1 Fletning.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Klassevariable- og metoder Tilstand og opførsel på klasseniveau.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering1.1 Turtlemaskinen Arkitektur, instruktionssæt og eksempler.
Rekursion 2.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursion 2.2 Introduktion Vi har tidligere set eksempler på rekursive.
Sortering.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.2 Sortering Vi hartidligere set at effektiv søgning forudsætter.
Rekursive skildpadder Supertrekanter.....  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.2 Penta, etc.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7B.1 Søgning.
 Bærbak & Caspersen, 2000 Introducerende objektorienteret programmering4B.1 Talsystemer Positionstalsystemer Decimale og binære tal.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7A.1 Rekursion.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
 Jens Bennedsen 2002Objektorienteret systemudvikling Modelleringsperspektiver Hvad betyder en klassemodel egentlig?
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
 Jens Bennedsen 2001Multimedie programmering Collections Samlinger af objekter.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5B.1 Sweep-algoritmer Programmering med invarianter og uden kaniner.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000 Introducerende objektorienteret programmering4A.1 Sweep-algoritmer Programmering med invarianter og uden kaniner.
Del, løs og kombinér Et algoritmemønster.
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
DAWN af Takao Tanabe fra 2003 Et landskabsbillede kan en gang imellem have svært ved at sige én noget. Men det er bestemt ikke tilfældet med TANABEE’s.
Hvor bor familien? På land eller i by?
Hvilken vampyr er størst? Du kan flytte rundt på dem.
Forelæsning Uge 3 – Torsdag
Forelæsning Uge 3 – Torsdag
Forelæsning Uge 4 – Mandag
Forelæsning Uge 3 – Torsdag
Quiz – Uge 3 – mandag – første time
Foredrag i Historisk Forening
Bicycletrip Grade 7 Copenhagen Int. School
Backgammon Formål: Du skal primært øve dig i brug af figurer i PowerPoint. Opgave: Lav et backgammon vha. figurer. Find et billede på Internettet af det.
Forelæsning Uge 3 – Torsdag
Forelæsning Uge 4 – Mandag
emne erklæring SmartArt-grafik med billeder på rød baggrund
Forelæsning Uge 4 – Mandag
Quiz – Uge 3 – mandag – første time
PowerPoint i undervisningen - med særligt fokus på billeder
Forelæsning Uge 3 – Torsdag
Parametrisering En kort introduktion.
Filmbånd (Øvet)   Du kan genskabe effekterne på dette dias ved at benytte følgende fremgangsmåde: Klik på Layout i gruppen Dias under fanen Startsiden,
Forelæsning Uge 4 – Mandag
Vejledning: Publicering af artikler på portalen.
Forelæsning Uge 3 – Torsdag
Quiz – Uge 3 – mandag – første time
Præsentationens transcript:

Billedbehandling – processering af digitale billeder

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

 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

 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(); }

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

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

 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

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

 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

 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

 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

 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

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

 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

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

 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 = oldValue; p.setPixel(newValue); } p picture

 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

 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(); }

 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

 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