The document describes CLIMB, a Common Lisp library for generic image processing. It introduces erosions and dilations as basic morphological operations and discusses making the algorithms more generic to support different image structures and value types. Morphers are defined that allow operations to work across different image representations by morphing values. The demonstration shows applying erosions, dilations, and edge detection to a grayscale image of Lena.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Climb - A Generic and Dynamic Approach to Image Processing
1. Climb
A Generic and Dynamic Approach to Image Processing
Christopher Chedeau
June 09, 2010
logo
2. Climb
Introduction
Erosion
Definition
Naive Version
Genericity Issues
Final Version
Morpher
Morpher Definition
Content Morpher
Climb: Common Lisp image processing Combination
Demonstration
Same Genericity as Olena1 Conclusion
With more Interactivity Conclusion
Questions
Bibliography
logo
1
olena.lrde.epita.fr
2 / 21
3. Climb
Erosion
Definition
Erosion
Naive Version Definition
Naive Version
Genericity Issues Genericity Issues
Final Version
Final Version Morpher
Morpher Definition
Content Morpher
Morpher Combination
Morpher Definition Demonstration
Content Morpher Conclusion
Conclusion
Combination Questions
Bibliography
Demonstration
Conclusion
Conclusion
Questions
Bibliography
logo
3 / 21
4. Climb
Erosion
Definition
Erosion
Naive Version Definition
Naive Version
Genericity Issues Genericity Issues
Final Version
Final Version Morpher
Morpher Definition
Content Morpher
Morpher Combination
Morpher Definition Demonstration
Content Morpher Conclusion
Conclusion
Combination Questions
Bibliography
Demonstration
Conclusion
Conclusion
Questions
Bibliography
logo
4 / 21
5. Climb
Erosion Definition
Erosion
Definition
Naive Version
Genericity Issues
Final Version
Morpher
Morpher Definition
Content Morpher
Combination
”All the pixels are replaced by the minimum value of the Demonstration
pixels around.” Conclusion
Conclusion
Questions
Bibliography
logo
5 / 21
6. Climb
Erosion Example
Erosion
Definition
Naive Version
Genericity Issues
Final Version
Morpher
Morpher Definition
Content Morpher
Combination
Demonstration
Conclusion
Conclusion
Questions
Bibliography
http://homepages.inf.ed.ac.uk/rbf/HIPR2/erode.htm
logo
6 / 21
7. Climb
Dilation Example
Erosion
Definition
Naive Version
Genericity Issues
Final Version
Morpher
Morpher Definition
Content Morpher
Combination
Demonstration
Conclusion
Conclusion
Questions
Bibliography
http://homepages.inf.ed.ac.uk/rbf/HIPR2/dilate.htm
logo
7 / 21
8. Climb
Naive Boolean 2D Version
Erosion
Definition
Naive Version
Genericity Issues
// Loop t h r o u g h a l l t h e v a l i d image p i x e l s Final Version
f o r ( x = 0 ; x < i m g w i d t h ; ++x ) Morpher
f o r ( y = 0 ; y < i m g h e i g h t ; ++y )
Morpher Definition
Content Morpher
// I n i t i a l i z e t h e o u t p u t image Combination
n ew i ma g e [ x ] [ y ] = TRUE ;
Demonstration
// Loop t h r o u g h a l l t h e n e i g h b o r h o o d p i x e l s
neighborhood : Conclusion
f o r ( i = −n e i g h b w i d t h ; i <= n e i g h b w i d t h ; ++i ) Conclusion
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 ) Questions
i f ( ( x + i >= 0 && x + i < i m g w i d t h ) && Bibliography
( y + j >= 0 && y + j < i m g h e i g h t ) )
/∗ A l g o r i t h m ∗/
i f ( o l d i m a g e [ x + i ] [ y + j ] == FALSE )
new image [ x ] [ y ] = FALSE ;
break neighborhood ;
logo
8 / 21
9. Climb
Genericity Issues
Image Structure Erosion
Definition
Neighborhood Naive Version
Genericity Issues
Final Version
Morpher
Morpher Definition
Content Morpher
Combination
Demonstration
Conclusion
Conclusion
8-connexity 4-connexity Custom Questions
Bibliography
Algorithm
• Difference between erosion and dilation? Min / Max
• Accumulator
• Black Box: Many inputs, Compute a result
Value Type
• Bool, Gray, RGB, ...
• Specialize the Accumulator logo
9 / 21
10. Climb
Final Version
Erosion
Definition
Naive Version
Genericity Issues
Final Version
( d e f u n e r o s i o n ( img n e i g h b ) Morpher
( image−map img Morpher Definition
Content Morpher
( accu−r e d u c e n e i g h b Combination
( min−a c c u ) ) ) ) Demonstration
Conclusion
Conclusion
Questions
Readable Algorithm Bibliography
Small Functions: Easily Unit Testable
Extensible
Write Once, Support Everything
logo
10 / 21
11. Climb
Erosion
Definition
Erosion
Naive Version Definition
Naive Version
Genericity Issues Genericity Issues
Final Version
Final Version Morpher
Morpher Definition
Content Morpher
Morpher Combination
Morpher Definition Demonstration
Content Morpher Conclusion
Conclusion
Combination Questions
Bibliography
Demonstration
Conclusion
Conclusion
Questions
Bibliography
logo
11 / 21
12. Climb
Definition
Alter communication protocol Erosion
Definition
Non intrusive, Transparent, Memory Free Naive Version
Genericity Issues
Glue between Objects Final Version
Morpher
Morpher Definition
Content Morpher
Combination
Value Morpher
Demonstration
Site Set Conclusion
Conclusion
next Questions
Bibliography
Update set value Image get value Query
f f
take result
Accumulator
logo
12 / 21
13. Climb
RGB to Gray Implementation
Erosion
Definition
Naive Version
Genericity Issues
Final Version
Morpher
Morpher Definition
Content Morpher
Combination
( make−direct−value−morpher−image
Demonstration
image
Conclusion
( lambda ( g r a y ) ( v e c t o r g r a y g r a y g r a y ) ) Conclusion
( lambda ( r g b ) ( / ( r e d u c e #’+ r g b ) 3 ) ) Questions
Bibliography
logo
13 / 21
14. Climb
Content Morpher
Work on Sets
Erosion
Restriction Definition
Naive Version
Content Morpher Genericity Issues
Restriction Final Version
Morpher
Site Set
Morpher Definition
Content Morpher
Site Combination
Demonstration
Site
f Conclusion
Conclusion
Site
Questions
Bibliography
Site
• Custom-shaped Site Set
• Cropped Image
Addition
logo
• Image Border
Ordering
14 / 21
15. Climb
Combination
Erosion
Definition
Naive Version
Genericity Issues
Final Version
Object 1
Morpher
Morpher Definition
Object 2
Content Morpher
Combination
Available Concrete Objects Demonstration
Conclusion
Available Content Morphers Conclusion
Questions
Bibliography
Available Value Morphers
Possibilities: Combination of ...
• Concrete Objects
• Value Morpher
• Content Morpher
• Repetition logo
15 / 21
16. Climb
Erosion
Definition
Erosion
Naive Version Definition
Naive Version
Genericity Issues Genericity Issues
Final Version
Final Version Morpher
Morpher Definition
Content Morpher
Morpher Combination
Morpher Definition Demonstration
Content Morpher Conclusion
Conclusion
Combination Questions
Bibliography
Demonstration
Conclusion
Conclusion
Questions
Bibliography
logo
16 / 21
17. Climb
Demonstration
( d e f p a r a m e t e r l e n a ( load−image ” l e n a . png ” : magick ) ) Erosion
Definition
( defparameter gray Naive Version
( make−direct−value−morpher−image l e n a Genericity Issues
( lambda ( g r a y ) ( v e c t o r g r a y g r a y g r a y ) ) Final Version
( lambda ( r g b ) ( / ( r e d u c e #’+ r g b ) 3 ) ) ) ) Morpher
Morpher Definition
( d e f p a r a m e t e r c8 ( make−box ( make−point −1 −1) ( make−point 1 1 ) ) ) Content Morpher
( d e f p a r a m e t e r c4 ( site−set−mask c8 #∗010111010)) Combination
( d e f p a r a m e t e r e r o ( e r o s i o n g r a y c4 ) ) Demonstration
( d e f p a r a m e t e r d i l ( d i l a t i o n g r a y c4 ) )
( d e f p a r a m e t e r d i f f ( image−combine−values #’− d i l e r o ) ) Conclusion
Conclusion
( d e f p a r a m e t e r f i n a l ( image−combine−values Questions
( lambda ( r g b e d g e ) Bibliography
( i f (> e d g e 5 0 ) ( v e c t o r 255 0 0 ) r g b ) )
lena d i f f ))
( save−image f i n a l ” f i n a l . png ” : png )
Lena Gray Erosion Dilation Diff Final logo
17 / 21
18. Climb
Erosion
Definition
Erosion
Naive Version Definition
Naive Version
Genericity Issues Genericity Issues
Final Version
Final Version Morpher
Morpher Definition
Content Morpher
Morpher Combination
Morpher Definition Demonstration
Content Morpher Conclusion
Conclusion
Combination Questions
Bibliography
Demonstration
Conclusion
Conclusion
Questions
Bibliography
logo
18 / 21
19. Climb
Conclusion
Erosion
Definition
Naive Version
Genericity Issues
Personal Additions: Final Version
• Fusion of Olena Concepts with Functionnal and Morpher
Morpher Definition
Dynamic Programming Content Morpher
Combination
• Developer Friendly
Demonstration
Current
Conclusion
• Basic Morphological Operators Conclusion
Questions
• Morpher System Bibliography
Future
• Genericity on Value Types
• More Algorithms and Image Types
• Performance
logo
19 / 21
20. Climb
Questions
Erosion
Definition
Naive Version
Genericity Issues
Final Version
Morpher
Questions ? Morpher Definition
Content Morpher
Combination
Demonstration
Conclusion
Conclusion
Questions
Bibliography
logo
20 / 21
21. Climb
Bibliography
Soille, P. (1999). Morphological Image Analysis -
Erosion
Principles and Applications. Springer-Verlag. Definition
Naive Version
Geraud, T. and Levillain, R. (2008). Semantics-driven Genericity Issues
Final Version
genericity: A sequel to the static c++ object-oriented Morpher
programming paradigm (Scoop 2). In 6th International Morpher Definition
Content Morpher
Workshop on Multiparadigm Programming with Combination
Demonstration
Object-Oriented Languages.
Conclusion
Ballas, N. (2008). Image taxonomy in milena. Conclusion
Questions
Technical report, EPITA Research and Development Bibliography
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
logo
and Development Laboratory (LRDE).
21 / 21