Slide 1

Slide 1 text

logo Climb A Generic and Dynamic Approach to Image Processing Christopher Chedeau June 09, 2010

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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