OO2-project: Beeldbewerking G. de Haan EH9.27

23
1 technische universiteit eindhoven 1 OO2-project: Beeldbewerking G. de Haan EH9.27

description

OO2-project: Beeldbewerking G. de Haan EH9.27. Inhoud. Beeldbewerking Waar gaat het over? Wat is een beeld? Hoe wordt beeld opgeslagen? De opdracht: Een 3x3 lineair filter Wat doet het? Wat kan je ermee? Praktische tips. Waar gaat het over?. This is our field. WEB. - PowerPoint PPT Presentation

Transcript of OO2-project: Beeldbewerking G. de Haan EH9.27

Page 1: OO2-project: Beeldbewerking G. de Haan EH9.27

1

technische universiteit eindhoven

1

OO2-project: Beeldbewerking

G. de Haan

EH9.27

Page 2: OO2-project: Beeldbewerking G. de Haan EH9.27

2

technische universiteit eindhoven

2

Inhoud

• Beeldbewerking

• Waar gaat het over?• Wat is een beeld?• Hoe wordt beeld opgeslagen?

• De opdracht: Een 3x3 lineair filter

• Wat doet het?• Wat kan je ermee?• Praktische tips

Page 3: OO2-project: Beeldbewerking G. de Haan EH9.27

3

technische universiteit eindhoven

3

Waar gaat het Waar gaat het over?over?

Page 4: OO2-project: Beeldbewerking G. de Haan EH9.27

4

technische universiteit eindhoven

4

50 Hz 2:160 Hz 2:1

100 Hz 2:1

72 Hz 1:185 Hz 1:195 Hz 1:1

CIF QCIF 1-25Hz 1:1

24 Hz 1:125 Hz 1:130 Hz 1:1

VGA, SVGA, XVGA, etc..

50 Hz 2:160 Hz 2:1

Video processing in ES

Flat panel displaysWEB

This is our field

Page 5: OO2-project: Beeldbewerking G. de Haan EH9.27

5

technische universiteit eindhoven

5

Voorbeeld werk in vakgroep ES: bewegingsschatting

Page 6: OO2-project: Beeldbewerking G. de Haan EH9.27

6

technische universiteit eindhoven

6

Wat is een Wat is een beeld?beeld?

Page 7: OO2-project: Beeldbewerking G. de Haan EH9.27

7

technische universiteit eindhoven

7

Een (z/w) beeld is een matrix van helderheidswaarden

400 pixels/lijn

300

lijn

en

40 pixels/lijn

30

lijn

en

Meer pixels betere beeldkwaliteit

Page 8: OO2-project: Beeldbewerking G. de Haan EH9.27

8

technische universiteit eindhoven

8

Hoe sla je een Hoe sla je een beeld op?beeld op?

Page 9: OO2-project: Beeldbewerking G. de Haan EH9.27

9

technische universiteit eindhoven

9

Beeld in een 1-dimensionaal pixel-array

0 width

Width*heightAddress: [y*width+x]

x

y

Page 10: OO2-project: Beeldbewerking G. de Haan EH9.27

10

technische universiteit eindhoven

10

Hoeveel bits per pixel moeten we opslaan?

Experiment: We kunnen ongeveer 200 niveaux in een beeld onderscheiden

We gebruiken daarom een 8 bit representatie voor de luminantie

Page 11: OO2-project: Beeldbewerking G. de Haan EH9.27

11

technische universiteit eindhoven

11

Het input bestand met beeld data (name.y format)

File: {byte0,byte1,……..byten, bytewidth*height}

Pixel linksboven

Pixel rechtsonder

Voorbeeld: Twee pixels boven elkaar b.v.: byten en byten+width

bicycle.y football.y

Page 12: OO2-project: Beeldbewerking G. de Haan EH9.27

12

technische universiteit eindhoven

12

De opdracht:De opdracht:

Een 3x3 filterEen 3x3 filter

Page 13: OO2-project: Beeldbewerking G. de Haan EH9.27

13

technische universiteit eindhoven

13

Wat doet een 3x3 filter met een beeld?

• 3x3 Filter vervangt elk pixel (byte) in de file door een gewogen som van dat pixel en zijn 8 directe buren:

• Met:

• En filter-coefficient C gerepresenteerd door e e n byte

1

1ln

1

1 ln*ln, */1_px pxwidthnpxn byteCNbyteOutput

NCpx

px ln,

ln,

3x3filter

Voorbeeld: filter coefficienten allemaal “1”

Page 14: OO2-project: Beeldbewerking G. de Haan EH9.27

14

technische universiteit eindhoven

14

Wat kan je Wat kan je ermee?ermee?

Page 15: OO2-project: Beeldbewerking G. de Haan EH9.27

15

technische universiteit eindhoven

15

Wat kunnen we er mee? (blur)

+1 +1 +1

+1 +1 +1

+1 +1 +1

Filter coefficienten:

Page 16: OO2-project: Beeldbewerking G. de Haan EH9.27

16

technische universiteit eindhoven

16

C-code for blurring

for(int a=width+1;a<width*height-(width+1);a++){

buf_o[a]=(unsigned char)((

(int)buf_i[a-1 - width] +

(int)buf_i[a - width] +

(int)buf_i[a+1- width] +

(int)buf_i[a-1 ] +

(int)buf_i[a ] +

(int)buf_i[a+1 ] +

(int)buf_i[a-1 +width] +

(int)buf_i[a +width] +

(int)buf_i[a+1+width]

+4 )/ 9);

}

Page 17: OO2-project: Beeldbewerking G. de Haan EH9.27

17

technische universiteit eindhoven

17

Wat kunnen we er mee? (sharpen)

-1 -1 -1

-1 12 -1

-1 -1 -1

Filter coefficienten:

Page 18: OO2-project: Beeldbewerking G. de Haan EH9.27

18

technische universiteit eindhoven

18

C-code for sharpeningfor(int a=width+1;a<width*height-(width+1);a++){

result=((

-1* (int)buf_i[a-1 - width] +

-1* (int)buf_i[a - width] +

-1* (int)buf_i[a+1- width] +

-1* (int)buf_i[a-1 ] +

12* (int)buf_i[a ] +

-1* (int)buf_i[a+1 ] +

-1* (int)buf_i[a-1 +width] +

-1* (int)buf_i[a +width] +

-1* (int)buf_i[a+1+width]

+2 )/ 4);

if(result<0) buf_o[a]=0;

else if(result>255) buf_o[a]=255;

else buf_o[a]=result;

}

Page 19: OO2-project: Beeldbewerking G. de Haan EH9.27

19

technische universiteit eindhoven

19

Wat kunnen we er mee? (find edges)

-1 -1 -1

-1 8 -1

-1 -1 -1

+128

Filter coefficienten:

Page 20: OO2-project: Beeldbewerking G. de Haan EH9.27

20

technische universiteit eindhoven

20

C-code for edge detection

for(int a=width+1;a<width*height-(width+1);a++){

result=(

-1* (int)buf_i[a-1 - width] +

-1* (int)buf_i[a - width] +

-1* (int)buf_i[a+1- width] +

-1* (int)buf_i[a-1 ] +

8* (int)buf_i[a ] +

-1* (int)buf_i[a+1 ] +

-1* (int)buf_i[a-1 +width] +

-1* (int)buf_i[a +width] +

-1* (int)buf_i[a+1+width]

+128);

if (result<0) buf_o[a]=0;

else if (result>255) buf_o[a]=255;

else buf_o[a]=result;

}

Page 21: OO2-project: Beeldbewerking G. de Haan EH9.27

21

technische universiteit eindhoven

21

Enkele Enkele praktische tips.praktische tips.

Page 22: OO2-project: Beeldbewerking G. de Haan EH9.27

22

technische universiteit eindhoven

22

Tips

• Voorkom dat er overflows optreden• “Clip” gewogen som b.v. tussen 0 en 255 (range van 1 byte)

• De efficiëntie test betreft hetzelfde algoritme, maar met andere weegfactoren (filter-coëfficiënten)

• De plaatjes zijn 406kB• Vanwege tijd nodig voor uploaden FPGA slechts deel van 128x128

pixels bewerken• 16kB voor input-plaatje en 16kB voor output-plaatje

• Om resultaat te visualiseren kun je het 128x128 blok van het oorspronkelijke beeld vervangen door het processing-resultaat en met de “view-button” van Windows-applicatie tonen op scherm

Page 23: OO2-project: Beeldbewerking G. de Haan EH9.27

23

technische universiteit eindhoven

23

Tot slot

• Deze presentatie komt beschikbaar op de OO2 web-site

• Zip-file “ImProc.zip op de web-site• Enkele plaatjes in .y-formaat

• Windows applicatie, ImProc.exe, om effect van 3x3 filtering to demonstreren

Image

Processing

Application