1 / 23

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

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.

vern
Download Presentation

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

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OO2-project: BeeldbewerkingG. de Haan EH9.27

  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

  3. Waar gaat het over?

  4. 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

  5. Voorbeeld werk in vakgroep ES: bewegingsschatting

  6. Wat is een beeld?

  7. 400 pixels/lijn 40 pixels/lijn 300 lijnen 30 lijnen Een (z/w) beeld is een matrix van helderheidswaarden Meer pixels  betere beeldkwaliteit

  8. Hoe sla je een beeld op?

  9. Beeld in een 1-dimensionaal pixel-array width 0 y x Width*height Address: [y*width+x]

  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

  11. 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

  12. De opdracht: Een 3x3 filter

  13. 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

  14. Wat kan je ermee?

  15. Wat kunnen we er mee? (blur) Filter coefficienten: +1 +1 +1 +1 +1 +1 +1 +1 +1

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

  17. Wat kunnen we er mee? (sharpen) Filter coefficienten: -1 -1 -1 -1 12 -1 -1 -1 -1

  18. 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; }

  19. Wat kunnen we er mee? (find edges) Filter coefficienten: -1 -1 -1 -1 8 -1 -1 -1 -1 +128

  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; }

  21. Enkele praktische tips.

  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

  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

More Related