1 / 23

Generic Image Processing with Climb

Generic Image Processing with Climb. Laurent Senta – Didier Verna. April 30, 2012. LRDE EPITA Research Lab. lrde.epita.fr. Outline. Introduction Using Climb Developping Climb Going Further Conclusion. Introduction. Generic Image Processing.

abel
Download Presentation

Generic Image Processing with Climb

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. Generic Image ProcessingwithClimb Laurent Senta – Didier Verna April 30, 2012 LRDE EPITA ResearchLab lrde.epita.fr

  2. Outline • Introduction • Using Climb • Developping Climb • Going Further • Conclusion

  3. Introduction

  4. Generic Image Processing Images: Roland Levillain. Software Architecture for Generic Image Processing Tools I I H H B B G G C C A A D D F F E E segmentation

  5. GenericityPurpose 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 segmentation S x V x A combinations values type graph bool grayscale rgb 2dmatrix 3dmatrix structures type

  6. Climb • Generic Image Processinglibrary • Common Lisp • Inspired by Olena: C++, 10 yearsold • DynamicvsStatic • Usability, maintainability, performance,… • Still in beta

  7. Architecture The differentlayers of the library GUI Image Algorithms ChainingOperator Generic types Morphers

  8. UsingClimb

  9. Algorithms original grayscale Otsu threshold jitter medianfilter dilation erosion

  10. ChainingOperator Chainingalgorithmswith the $ operator (setfimg(image-load‘images/lena128gray.jpg’)) (setfot-img(otsuimg)) (setfdil-img(dilationot-img(4-connectivity))) (savedil-img‘out/lena-dilated.png’) (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’ chain ($ (image-load‘images/lena128gray.jpg’) (otsu) (dilation (4-connectivity)) (save‘out/lena-eroded.png’))

  11. ChainingOperator More complexchaining erosion image-load to-gray otsu diff dilation

  12. DevelopPingClimb

  13. Image Definition I H B G C A D F Image access E • 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 Generalization: image(site) = value Lisp: (setf (iref image site) value)

  14. Values and Sites Values: I H B bool grayscale RGB G C A Site: D F x E y label 2d-point (setf (iref image site) ) (iref image site) (value-inverse )

  15. Browsing Images Site-set: x I H B G C A D F E y (domain (image-domain image)) (let ( ) (loop:for s := :whiles )) (site-set-nextdomain) …

  16. Browsing Images Site-set-window: x I H B G C A D F E y … (site-set-nextneighbors) (neighbors (site-set-windowwindow site)) (let ( ) (loop:for s := :whiles ))

  17. Morphers Transforming images withmorphers Value morpher Structure morpher

  18. Goingfurther

  19. Properties Adaptinggenericity algorithms support:regular segmentation values type graph bool grayscale rgb 2dmatrix 3dmatrix structures type

  20. GUI Climbbased interface I H B G C A D F E Value: GTK-BOX MorpherResize climb graph

  21. Conclusion Currentstatus Algorithmimplementor Image ProcessingPractitionner • High-leveldomain model • Generic values • Generic structures • Genericimplementations • Built-in algorithms • Composition tools • Chainingoperator • Morphers • GUI Hot topics

  22. Thanks for your attention, Questions ?

  23. Sources • Th. Géraud and R. Levillain. Semantics-drivengenericity: A sequel to the static C++ object-orientedprogrammingparadigm (SCOOP 2). • R. Levillain, Th. Géraud, and L. Najman. Why and how to design a generic and efficient image processingframework: The case of the Milena library. • N. Otsu. A thresholdselectionmethodfrom gray-levelhistograms. • P. Soille. Morphological Image Analysis: Principles and Applications • Roland Levillain. Software Architecture for Generic Image Processing Tools • Laurent Najman. Point de vue d'un théoricien sur l'intérêt de la généricité pour le traitement d'images

More Related