slide1
Download
Skip this Video
Download Presentation
OO2-project: Beeldbewerking G. de Haan EH9.27

Loading in 2 Seconds...

play fullscreen
1 / 23

OO2-project: Beeldbewerking G. de Haan EH9.27 - PowerPoint PPT Presentation


  • 94 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' OO2-project: Beeldbewerking G. de Haan EH9.27' - vern


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
inhoud
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
video processing in es

This is our field

WEB

Video processing in ES

72 Hz 1:1

85 Hz 1:1

95 Hz 1:1

24 Hz 1:1

25 Hz 1:1

30 Hz 1:1

VGA, SVGA, XVGA, etc..

50 Hz 2:1

60 Hz 2:1

50 Hz 2:1

60 Hz 2:1

100 Hz 2:1

CIF QCIF 1-25Hz 1:1

Flat panel displays

een z w beeld is een matrix van helderheidswaarden

400 pixels/lijn

40 pixels/lijn

300 lijnen

30 lijnen

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

Meer pixels  betere beeldkwaliteit

beeld in een 1 dimensionaal pixel array
Beeld in een 1-dimensionaal pixel-array

width

0

y

x

Width*height

Address: [y*width+x]

hoeveel bits per pixel moeten we opslaan
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

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

football.y

bicycle.y

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

Pixel linksboven

Pixel rechtsonder

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

slide12

De opdracht:

Een 3x3 filter

wat doet een 3x3 filter met een beeld

3x3filter

Voorbeeld: filter coefficienten allemaal “1”

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
wat kunnen we er mee blur
Wat kunnen we er mee? (blur)

Filter coefficienten:

+1 +1 +1

+1 +1 +1

+1 +1 +1

c code for blurring
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);

}

wat kunnen we er mee sharpen
Wat kunnen we er mee? (sharpen)

Filter coefficienten:

-1 -1 -1

-1 12 -1

-1 -1 -1

c code for sharpening
C-code for sharpening

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 ] +

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;

}

wat kunnen we er mee find edges
Wat kunnen we er mee? (find edges)

Filter coefficienten:

-1 -1 -1

-1 8 -1

-1 -1 -1

+128

c code for edge detection
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;

}

slide22
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
tot slot
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

ad