Generic Image Processing with Climb Laurent Senta Didier Verna LRDE EPITA Research Lab April 30 2012 lrdeepitafr Outline Introduction Using Climb Developping Climb Going Further Conclusion ID: 764545
Download Presentation The PPT/PDF document "Generic Image Processing" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Generic Image Processing with Climb Laurent Senta – Didier Verna LRDEEPITA Research Lab April 30, 2012 lrde.epita.fr
OutlineIntroductionUsing Climb Developping ClimbGoing FurtherConclusion 2
Introduction 3
Generic Image Processing 4 Images: Roland Levillain. Software Architecture for Generic Image Processing Tools I A H B D C E F G I A H B D C E F G segmentation
Genericity Purpose 5 Graphic : Laurent Najman . Point de vue d'un théoricien sur l'intérêt de la généricité pour le traitement d'images algorithms values type structures type segmentation graph 2dmatrix 3dmatrix bool grayscale rgb S x V x A combinations
Climb Generic Image Processing library Common LispInspired by Olena: C++, 10 years old Dynamic vs StaticUsability, maintainability, performance,… Still in beta 6 Compilers sbcl Dependencies iterate , lisp- magick , cl- heap , lisp-unit, cl-gtk2
Architecture7 The different layers of the library Generic types Morphers Image Algorithms Chaining Operator GUI
Using Climb 8
Algorithms 9 original grayscale median filter Otsu threshold dilation erosion jitter
( setf img (image- load ‘images/lena128gray.jpg’ )) ( setf ot - img ( otsu img )) ( setf dil-img ( dilation ot-img (4-connectivity))) (save dil-img ‘out/lena-dilated.png’) Chaining OperatorChaining algorithms with the $ operator 10 (save (erosion (otsu (image-load ‘images/lena128gray.jpg’)) (4-connectivity)) ‘out/lena-eroded.png’) image-load ‘images/lena128gray.jpg’otsu dilation (4-connectivity)save ‘out/lena-eroded.png’ ($ (image- load ‘images/lena128gray.jpg’) ( otsu) (dilation (4-connectivity )) ( save ‘out/lena-eroded.png’)) chain
dilation diff erosion otsu to-gray image- load Chaining Operator 11 More complex chaining
DevelopPing Climb 12
matrix[x, y] → pixelvalue graph.getNode(label) → nodevalue model[x, y, z] → voxelvalue matrix[x, y] → pixelvalue graph.getNode ( label ) → nodevalue model[ x, y, z ] → voxelvalue Image Definition 13 I A H B D C E F G Image access image( site ) = value ( setf ( iref image site) value) Generalization : Lisp:
( value-inverse ) (iref image site) ( setf ( iref image site) ) Values and Sites 14 Values: Site: bool grayscale RGB x y I A H B D C E F G 2d-point label
Browsing Images 15 x y Site-set: ( let ( ) ( loop :for s := : while s )) ( domain ( image- domain image)) ( site-set- next domain ) … I A H B D C E F G
( let ( ) (loop :for s := : while s )) … ( site-set- next neighbors ) ( neighbors ( site-set- window window site)) Browsing Images 16 x y Site-set- window : I A H B D C E F G
Morphers 17 Transforming images with morphers Value morpher Structure morpher
Going further 18
Properties 19 Adapting genericity algorithms values type structures type segmentation graph 2dmatrix 3dmatrix bool grayscale rgb support:regular
Value: GUI 20 Climb based interface I A H B D C E F G GTK-BOX Morpher Resize climb graph
Conclusion 21 Current status Image Processing Practitionner Algorithm implementor Built -in algorithms Composition tools Chaining operator Morphers GUI High- level domain model Generic values Generic structures Generic implementations Hot topics GenericityUsability Performance
Questions ?Thanks for your attention, 22
SourcesTh. Géraud and R. Levillain. Semantics- driven genericity: A sequel to the static C++ object-oriented programming paradigm (SCOOP 2).R. Levillain, Th. Géraud, and L. Najman. Why and how to design a generic and efficient image processing framework: The case of the Milena library. N. Otsu. A threshold selection method from gray- level histograms . P. Soille . Morphological Image Analysis: Principles and Applications Roland Levillain. Software Architecture for Generic Image Processing ToolsLaurent Najman . Point de vue d'un théoricien sur l'intérêt de la généricité pour le traitement d'images 23