Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Climb - A Generic and Dynamic Approach to Image Processing

vjeux
April 05, 2012

Climb - A Generic and Dynamic Approach to Image Processing

vjeux

April 05, 2012
Tweet

More Decks by vjeux

Other Decks in Programming

Transcript

  1. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Introduction Climb: Common Lisp image processing Same Genericity as Olena1 With more Interactivity 1olena.lrde.epita.fr 2 / 21
  2. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Erosion Definition Naive Version Genericity Issues Final Version Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography 3 / 21
  3. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Erosion Definition Naive Version Genericity Issues Final Version Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography 4 / 21
  4. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Erosion Definition ”All the pixels are replaced by the minimum value of the pixels around.” 5 / 21
  5. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Erosion Example http://homepages.inf.ed.ac.uk/rbf/HIPR2/erode.htm 6 / 21
  6. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Dilation Example http://homepages.inf.ed.ac.uk/rbf/HIPR2/dilate.htm 7 / 21
  7. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Naive Boolean 2D Version // Loop through a l l the v a l i d image p i x e l s f o r ( x = 0; x < img width ; ++x ) f o r ( y = 0; y < img height ; ++y ) // I n i t i a l i z e the output image new image [ x ] [ y ] = TRUE; // Loop through a l l the neighborhood p i x e l s neighborhood : f o r ( i = −neighb width ; i <= neighb width ; ++i ) f o r ( j = −n e i g h b h e i g h t ; j <= n e i g h b h e i g h t ; ++j ) i f (( x + i >= 0 && x + i < img width ) && ( y + j >= 0 && y + j < img height )) /∗ Algorithm ∗/ i f ( old image [ x + i ] [ y + j ] == FALSE) new image [ x ] [ y ] = FALSE ; break neighborhood ; 8 / 21
  8. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Genericity Issues Image Structure Neighborhood 8-connexity 4-connexity Custom Algorithm • Difference between erosion and dilation? Min / Max • Accumulator • Black Box: Many inputs, Compute a result Value Type • Bool, Gray, RGB, ... • Specialize the Accumulator 9 / 21
  9. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Final Version ( defun e r o s i o n ( img neighb ) ( image−map img ( accu−reduce neighb ( min−accu ) ) ) ) Readable Algorithm Small Functions: Easily Unit Testable Extensible Write Once, Support Everything 10 / 21
  10. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Erosion Definition Naive Version Genericity Issues Final Version Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography 11 / 21
  11. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Definition Alter communication protocol Non intrusive, Transparent, Memory Free Glue between Objects Value Morpher Image Accumulator Site Set f Update f get value next result Query set value take 12 / 21
  12. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography RGB to Gray Implementation ( make−direct−value−morpher−image image ( lambda ( gray ) ( v e ct or gray gray gray )) ( lambda ( rgb ) (/ ( reduce #’+ rgb ) 3)) 13 / 21
  13. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Content Morpher Work on Sets Restriction Content Morpher Restriction f Site Set Site Site Site Site • Custom-shaped Site Set • Cropped Image Addition • Image Border Ordering 14 / 21
  14. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Combination Available Value Morphers Available Content Morphers Available Concrete Objects Object 2 Object 1 Possibilities: Combination of ... • Concrete Objects • Value Morpher • Content Morpher • Repetition 15 / 21
  15. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Erosion Definition Naive Version Genericity Issues Final Version Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography 16 / 21
  16. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Demonstration ( defparameter l e n a ( load−image ” l e n a . png” : magick )) ( defparameter gray ( make−direct−value−morpher−image l e n a ( lambda ( gray ) ( v e c t o r gray gray gray )) ( lambda ( rgb ) (/ ( reduce #’+ rgb ) 3 ) ) ) ) ( defparameter c8 (make−box ( make−point −1 −1) ( make−point 1 1 ) ) ) ( defparameter c4 ( site−set−mask c8 #∗010111010)) ( defparameter ero ( e r o s i o n gray c4 )) ( defparameter d i l ( d i l a t i o n gray c4 )) ( defparameter d i f f ( image−combine−values #’− d i l ero )) ( defparameter f i n a l ( image−combine−values ( lambda ( rgb edge ) ( i f (> edge 50) ( v e c t o r 255 0 0) rgb )) l e n a d i f f )) ( save−image f i n a l ” f i n a l . png” : png ) Lena Gray Erosion Dilation Diff Final 17 / 21
  17. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Erosion Definition Naive Version Genericity Issues Final Version Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography 18 / 21
  18. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Conclusion Personal Additions: • Fusion of Olena Concepts with Functionnal and Dynamic Programming • Developer Friendly Current • Basic Morphological Operators • Morpher System Future • Genericity on Value Types • More Algorithms and Image Types • Performance 19 / 21
  19. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Questions Questions ? 20 / 21
  20. logo Climb Erosion Definition Naive Version Genericity Issues Final Version

    Morpher Morpher Definition Content Morpher Combination Demonstration Conclusion Conclusion Questions Bibliography Bibliography Soille, P. (1999). Morphological Image Analysis - Principles and Applications. Springer-Verlag. Geraud, T. and Levillain, R. (2008). Semantics-driven genericity: A sequel to the static c++ object-oriented programming paradigm (Scoop 2). In 6th International Workshop on Multiparadigm Programming with Object-Oriented Languages. Ballas, N. (2008). Image taxonomy in milena. Technical report, EPITA Research and Development Laboratory (LRDE). Denuziere, L. (2009). CLIMB: A dynamic approach to generic image processing. Technical report, EPITA Research and Development Laboratory (LRDE). Denuziere, L. (2010). Property-based genericity: A dynamic approach. Technical report, EPITA Research and Development Laboratory (LRDE). 21 / 21