Billedbehandling Processering af digitale billeder.

Slides:



Advertisements
Liknende presentasjoner
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Advertisements

14 okt. 2003, Arne Maus Inst. for informatikk, UiO
Intro til programmering i Processing
Figurer og tabeller fra bogen DEN UNDERSØGENDE LEDER - metoder til dataindsamling og dataanvendelse af Jørn Kjølseth Møller og Steen Hvid Samfundslitteratur.
Mønsterdannelse i Photoshop
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Kap.8 Sortering og søking sist oppdatert • Del 1 Søking - lineær søking m/u sorterte elementer - binærsøking - analyse • Del 2 Sortering - ”gamle”
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
C# for javaprogrammerere
En gang til!? .
Fag LO189D - Objektorientert programmering Objektorientert programmering© Else Lervik, TISIP - HiST/IDB vår-99Leksjon 11 Applet’s Hva karakteriserer applet’sside.
1 ProsjektProsjekt Våren Digital bildebehandling -Utvikle generelle bildebehandlingsrutiner i Java -Bruk av Wavelets i digital bildebehandling.
1 App_A_17 Et eksempel på OOP knyttet til 2-dim figurer.
Objekt Orientert Programmering (OOP). Objektorientering (OO)1/6 Objektorientering er en grunnleggende måte å organisere komplekse fenomener på.
Introduksjon til Java 5.0. Hva er nytt i 5.0? Generiske typer For-løkke med iterator (for-hver løkke) Automatisk innpakking av primitive typer Metadata.
Kap 05 Abstrakte datastrukturer. Arv - Implementering Interface / Abstrakte klasser / Konkrete klasser Concrete classAbstract class Interface extends.
Design Patterns Iterator & Mediator. Gruppe 8 Presentasjonsgruppe:Resten av gruppen: Marianne AtesAndrè Johansen Tom Vidar LundeHege-Kristin Johansen.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Objektorientert programmering
Tema: Test First Positivist: Det som ikke kan måles, eksisterer ikke! Reduserer sjanser for defekter! Gir en oppdatert ”TODO-liste” Gir trygghet til å.
IFrame LEGGE TIL IFRAME. IFRAME for å legge til en iframe, kopier kodesnutten som angitt på siden du skal dele fra: f. eks.:
CSS Doing it in style!. CSS Cascading style sheets. Eget språk for presentasjon av dokumenter. Ligner Java-syntaks. Klasser av stiler for gjenbruk. Kaskaderende.
Kommentarer og stil ”Dette suger!” ”Ne-hei!” ”Jo- hoo”, osv.
IFrame LEGGE TIL IFRAME. IFRAME for å legge til en iframe, kopier kodesnutten som angitt på siden du skal dele fra: f. eks.:
OOT Seminar H-97 CORBA Praktisk del. Valg av ORB implementasjon n Har valgt å bruke Visigenic sin ORB implementsjon n ORB’en er 100% Java kodet n Bygger.
1 Kap 06 Ordnede / Sorterte lister Oppgave nr 06_02 Polynomer Klassehierarki Javadokumentasjon.
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
02 - Java datatyper Grundlæggende om datatyper og variable.
1 Pointere, referencer, struct’s mv.. 2 Erklæringer Eksempel på erklæringer int i, *ip, f ( ), *fip( ), (*pfi) ( ); Erklærer en integer, en pointer til.
Programmering i Java tilpasset undervisning våren 2009 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet.
Fag LO189D - Objektorientert programmering Objektorientert programmering© Else Lervik, TISIP - HiST/IDB vår-99Leksjon 7 Grafikk Fra AWT til Swingside 2.
HTML. Dagens gang SQL opgaver fra sidst HTML Opgave i HTML Indhold i analyse dokument Tilbage melding på Systemdefinitioner Links HTML editor:
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
GPS simulator Et C# program som sender data fra en GPS fil til RS232 og simulerer en GPS engine. Tre linjer pr. sekund er satt opp.
Hallgrim2LF : Hva Hva skal metoden traverser gjøre?  Ta inn et rom som parameter  Returnere antall møter i dette rommet og i alle rom innenfor. Public.
B.V. Electronic Østerbro Skive GuideOnLine Framework.
Föreläsning 13 Programmeringsteknik och Matlab 2D1312/2D1305 Inläsning från fil Skriva till fil StringTokenizer Sortering.
Indledende Datalogi /kelk 1 Need to know Løkker Klasser, instanser og Objekter Hvorfor objektorientering? Scope – hvor erklæres en variabel? ”Access Modifiers”
Brukerveiledning i GIMP- animasjon (GIF)
Programmering i Java versjon september 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Ortering Mål: Se på forskjellige måter for sortering.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Printvenlige kort Kommende web service i Kortforsyningen.
XML og JDOM Helge Furuseth XML  XML = Extensible Markup Language Basert på SGML – Standard Generalized Markup Language  HTML =
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringContainerklasser.2 Mange objekter.
Kapittel 7 Array (lister og tabellar). 7.1 Arrayelement Array (lister, tabellar) er kjent frå VB Blir brukt til å organisere data når vi har mange dataelement.
Klassevariabler- og metoder Funktionalitet på klasseniveau.
Typeparametrisering Generel kode (generisk kode).
Quiz – Uge 4 – mandag – første time. Realisering af én-til-mange Hvilke kodestumper realiserer ovenstående en-til-mange relation? B * import java.util.*;
Quiz – Uge 4 – mandag – første time
Triks Avslutt alle klasser, metoder og løkker samtidig som du lager dem. Deklarer alle variablene/referansene på begynnelsen av klassen. Hvis du definerer.
Quiz – Uge 5 – mandag – første time
Primitive typer, klasseegenskaber samt identitet og lighed
Quiz – Uge 5 – mandag – første time
Bokser Håkon Tolsby Håkon Tolsby.
Mer html5 Håkon Tolsby Håkon Tolsby.
BilSalg klassedatastruktur Bil klassedatastruktur
Quiz – Uge 4 – mandag – første time
Quiz – Uge 5 – mandag – første time
Bokser og Menyer Håkon Tolsby Håkon Tolsby.
Quiz – Uge 5 – mandag – første time
Mer html5 Håkon Tolsby Håkon Tolsby.
BilSalg klassedatastruktur Bil klassedatastruktur
Quiz – Uge 4 – mandag – første time
Utskrift av presentasjonen:

Billedbehandling Processering af digitale billeder

dIntProg, E12 Billedbehandling Lighten BlurDarkenInvert

dIntProg, E12 Billedrepræsentation x y Pixel (x, y)  [0..255] 0 ~ sort, 255 ~hvid x  [0..width[, y  [0..heigth[ 0 0 height width

dIntProg, E12 Image, et interface til digitale billeder public class Image { // 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 liste med samtlige pixels i billedet public List getPixels() // returnerer de op til ni naboer til (x, y) public List getNeighbours(int x, int y) // gentegner billedet public void pixelsUpdated() }

dIntProg, E12 getHeight public class Image { // returnerer billedets højde public int getHeight()... } height

dIntProg, E12 getWidth public class Image {... // returnerer billedets bredde public int getWidth()... } width

dIntProg, E12 getPixel public class Image {... // returnerer billedelementet på position (x, y) public Pixel getPixel(int x, int y)... } x y

dIntProg, E12 getPixels public class Image {... // returnerer en liste med samtlige pixels i billedet public List getPixels()... }

dIntProg, E12 getNeighbours public class Image {... // returnerer de op til ni naboer til (x, y) public List getNeighbours(int x, int y)... } x y

dIntProg, E12 Pixel public class Pixel{ // returnerer gråtonen for denne pixel public int getValue() // opdaterer gråtonen for denne pixel public void setValue(int value) }

dIntProg, E12 Simpel billedbehandling for ( Pixel p : image.getPixels() ) { int oldValue = p.getValue(); int newValue; // calculate newValue // from oldValue p.setValue(newValue); } image p

dIntProg, E12 Brighten newValue = oldValue + 30

Brighten, Javakode for ( Pixel p : image.getPixels() ) { int oldValue = p.getValue(); int newValue; newValue = oldValue + 30; p.setPixel(newValue); } image p dIntProg, E12

Invert newValue = oldValue

Invert, Javakode for ( Pixel p : image.getPixels() ) { int oldValue = p.getValue(); int newValue; newValue = 255 – oldValue; p.setPixel(newValue); } image p dIntProg, E12

Koordinatbaseret gennemløb for (int y=0; y<image.height(); y++) { // behandl række y } for(int y=0; y<image.height(); y++) { // behandl række y for (int x=0; x<image.width(); x++) { // behandl pixel(x, y) } widthx y 0 0 height

dIntProg, E12 Invert, koordinatbaseret public void invert() { // go through all pixels and // invert the colour value for(int y = 0; y < image.height(); y++) { for(int x = 0; x < image.width(); x++) { Pixel p = image.getPixel(x, y); int oldValue = p.getValue(); int newValue; newValue = 255 – oldValue; p.setValue(newValue); } // redisplay the image on screen image.pixelsUpdated(); }

dIntProg, E12 Invert, koordinatbaseret og kompakt public void invert() { // go through all pixels and // invert the colour value for(int y = 0; y < image.height(); y++) { for(int x = 0; x < image.width(); x++) { image.getPixel(x, y).setValue(invert(x, y)); } // redisplay the image on screen image.pixelsUpdated(); } public int invert(int x, int y) { return 255-image.getValue(x, y); }

dIntProg, E12 Blur newValue = gennemsnit af naboer

dIntProg, E12 Blur, koordinatbaseret public Image blur() { Image result= new Image(image.getWidth(), image.getHeight(), "blurredImage”); for (int y = 0; y<image.getHeight(); y++) { for (int x = 0; x<image.getWidth(); x++) { result.getPixel(x, y).setValue(average(x,y)); } result.pixelsUpdated(); return result; } public int average(int x, int y) { int sum = 0; for (Pixel p : image.getNeighbours(x,y)) { sum= sum + p.getValue(); } return sum/image.getNeighbours(x,y).size(); }

dIntProg, E12 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 gråtone, dvs. 0 bliver til 255, 1 bliver til 254, 2 bliver til 253, etc. rotateL Rotér billedet 90 grader (90 grader mod uret, venstre om)

dIntProg, E12 Billedoperationer (2) rotateR Rotér billedet -90 grader (90 grader med uret, højre om) 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

dIntProg, E12 Billedoperationer (3) 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

dIntProg, E12 Billedoperationer (4) 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 ad- deres ved at addere værdierne for korres- ponderende pixels 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