centre de morphologie math matique cmm
play

Centre de Morphologie Mathmatique (CMM) Mines ParisTech Overview - - PowerPoint PPT Presentation

Centre de Morphologie Mathmatique (CMM) Mines ParisTech Overview - Founding Concept - Software Development Layers - Fundamental Notion - Algorithm Decomposition - Content - Conclusion Founding Concept Aim Improve and Extend our old


  1. Centre de Morphologie Mathématique (CMM) Mines ParisTech

  2. Overview - Founding Concept - Software Development Layers - Fundamental Notion - Algorithm Decomposition - Content - Conclusion

  3. Founding Concept Aim Improve and Extend our old library (Xlim3d)

  4. Founding Concept Aim Improve and Extend our old library (Xlim3d) Needs Parallel dev Readability Robustness

  5. Founding Concept Aim Improve and Extend our old library (Xlim3d) Needs Parallel dev Readability Robustness Solutions Modular Reusable Encapsulation

  6. Founding Concept Aim Improve and Extend our old library (Xlim3d) Needs Parallel dev Readability Robustness Solutions Modular Reusable Encapsulation Tools SVN Genericity Tests Design Patterns

  7. Software Development Layers Low - Level C++ Core Layer Developers Very flexible layer for generic algorithm design . C-Like Layer C - Like interface Script Layer Laboratory Users & Teaching Customized Python : - Ease of use Graphical - Fast Algorithms Implementation - Transparency with Core Layer User -Prototyping -Educational purposes Interface Application User-Friendly interface Users for specific applications (Industrial)

  8. Fundamental Notion Operator Data Types Simple + = ImMaximum Max Abstraction Iterator Neighborhood + = ImDilate Max Neighbor Iterator step 0,-1 -1,0 0,0 +1,0 Generic Mask controller + = ImMinimum Min Function 0,+1 Iterator OnRegion ES 1 complexe ? Iterator V1

  9. template<class ImageIn, class ImageValues, class SE, class ImageOut> RES_C t_ImLabelWithAverage( const ImageIn& imIn, const ImageValues & imVals, const SE& nl, Algorithm ImageOut &imOut) { … Decomposition s_LabellingMeasureAverage<tVal,tOut> opAvg; s_ConnexityIsNotBeingZero<ImageIn,ImageOut, LabelImageOutputPolicy_Default, LabelValuesPolicy_Default> opCnx; Return t_ImLabelWithConnexityOperatorWithValues(imIn,imVals,nl,opCnx,op Avg,imOut);

  10. Python Example def MyErode2(imIn,nl,imOut): itIn = imIn.imageData() def main(): itOut = imOut.imageData() im=fileRead("./Gray/foreman.png") neighb = createNeighborhood( imIn, nl ) imEro = getSame(im) imEroRef = getSame(im) nl = neighborsSquare2D while itIn.isNotFinished() and itOut.isNotFinished(): neighb.setCenter( itIn ) # C++ function itOut.setPixel( min( neighb.imageData() ) ) ImErode( im, nl, imDilRef) itIn.next() itOut.next() def MyErode1(imIn, nl, imOut): # lambda version: morphee.ImNeighborhoodUnaryOperation(imIn, nl, lambda l:min(l), imOut) # version using 'min' function: morphee.ImNeighborhoodUnaryOperation(imIn, nl, min, imOut)

  11. Content Images Structure : Image Processing: - Multi-dimensional image data -Arithmetics and logics - Templated image data structures for pixel type - Color conversion and manipulations abstraction - Geometrics transformations (Drawing,rotation,...) - Several image le formats avalaible: - Pixel-wise generic operatior PNG,TIFF,BMP,JPEG,VTK,... Filters: Structuring Element : -Convolution Filters -Myriad of predefined Structuring element - Diffusion Filters - Easy use and easy manipulation of SE Iterator - Noising Filters - Multi-dimentionnal structuring element - Dynamic Structuring Element Statistics Tools: - Image-based Structing Element - Kriging - Neighborhood based Generic operations -Linear algebra - Morphological Measures (Granulometry,...) Morphological Operation: - Usual statistics (mean, variance, ... ) -Histograms and Counting (threshold intervariance class, ... -Criteria based morphology (AreaClosing,...) -Basic morphological operators(Erode,...) Graphs and Addons -Distance functions and Geodesic operators - Morphology based on graph and Tree -Lexicographical morphology - Graphs Cuts and Graph Manipulation - Morphological lters and measures - FFT, Skeleton, ... - Labelling and Leveling - Morphological Segmentation

  12. Conclusion Features & Advantage Portability: 32bits or 64bits, Windows, Linux, OS X A Lots of Addons: - Morphology on Graph Genericity: - Morphology on Multi-Hyper spectale images - Modular and robustness project - Skeleton - Each Algorithms can be extended easily - Maxtree , FFT,…. - Algorithms disconnected from data representation - Pixel Types abstraction (scalar, vector, matrix ,…) - Robustness - Collaborative working

  13. Conclusion Features & Advantage Portability: 32bits or 64bits, Windows, Linux, OS X A Lots of Addons: - Morphology on Graph Genericity: - Morphology on Multi-Hyper spectale images - Modular and robustness project - Skeleton - Each Algorithms can be extended easily - Maxtree , FFT,…. - Algorithms disconnected from data representation - Pixel Types abstraction (scalar, vector, matrix ,…) - Robustness - Collaborative working Drawback Coding time (heavy design, funny debug …) Performance ( Not design for that !) Code Size (must be patient for browsing and compiling the code) Code Adaptation period (student or post-doc)

  14. Conclusion Features & Advantage Portability: 32bits or 64bits, Windows, Linux, OS X A Lots of Addons: - Morphology on Graph Genericity: - Morphology on Multi-Hyper spectale images - Modular and robustness project - Skeleton - Each Algorithms can be extended easily - Maxtree , FFT,…. - Algorithms disconnected from data representation - Pixel Types abstraction (scalar, vector, matrix ,…) - Robustness - Collaborative working Drawback Coding time (heavy design, funny debug …) Performance ( Not design for that !) Code Size (must be patient for browsing and compiling the code) Code Adaptation period (student or post-doc) Solution: SMIL Light genericity / Generic-friendly Work on 2D and 3D images Optimized algorithms as far as possible Predefined image Types ( avoid exotic types) Parallel Programming / fast library Design by Matthieu Faessel

  15. What’s next ? Morph-M: Mamba: -Research Library -Free/ Light - Generic Prototyping -Simple / Fast - Educational -Fit for eductional purposes - Industrial Project -Applications Prototyping -Proprietary SMIL: - Parallel programming - Optimized Algorithms -Have Standalone - Java & Python binding -Free/Fast

  16. Some Applications Segmentation of Computer Vision (2D+t) Urban Modeling Seismic Data Haussmannian facades Analysis Point Clouds Semantic Analysis Gradient Watershed Façades, Ground, Artifacts Lampposts , Cars Pedestrians, Others Hierarchy Road mask Interactive Segmentation of 3D Medical Images Road Detection & tracking based on hierarchical Segmentation Microtomography Analysis

  17. Thanks for you attention Question ?

  18. Image Processing Library Specialized in Mathematical Mophology Mines ParisTech - Centre de Morphologie Mathématique - 35, rue Saint Honoré 
 77305 Fontainebleau CEDEX (France) – http://cmm.ensmp.fr Morph-M is the result of the work of several researchers at the Centre for Mathematical Morphology. Morph-M provides a rich environment for the development of image processing algorithms. Features Software Development Layers Low - Level Developers Very flexible layer for C++ Core Layer algorithm design. Portability Windows, Linux & Mac ; 32 and 64 bits C-Like Layer C - Like interface Genericity Laboratory Morph-M offers a large choice regarding Script Layer Python : Users & Teaching image types and structuring elements - Ease of use - Fast Algorithms Implementation - Transparency with Core Layer Extensible A myriad of addons Customized User-Friendly interface Connection with several libraries (vtk, Graphical for specific applications opencv , … ) User Professional Quality Interface Nightly regression tests Application Sources manager Users Bug tracker CMS More Information Morph-M represents a reference http://morphm.ensmp.fr in mathematical morphology. Contact serge.koudoro@mines-paristech.fr

  19. Needs Parallel dev Readability Robustness Solutions Modular Reusable Encapsulation Tools SVN Genericity Tests Design Patterns

  20. Morph-M: Mamba: -Research Library -Free/ Light - Generic Prototyping -Simple / Fast - Educational -Fit for eductional purposes - Industrial Project -Applications Prototyping -Proprietary SMIL: - Parallel programming - Optimized Algorithms -Have Standalone - Java & Python binding -Free/Fast

  21. template<class ImageIn, class ImageValues, class SE, class ImageOut> RES_C t_ImLabelWithAverage( const ImageIn& imIn, const ImageValues & imVals, const SE& nl, ImageOut &imOut) { … s_LabellingMeasureAverage<tVal,tOut> opAvg; s_ConnexityIsNotBeingZero<ImageIn,ImageOut, LabelImageOutputPolicy_Default, LabelValuesPolicy_Default> opCnx; Return t_ImLabelWithConnexityOperatorWithValues(imIn,imVals,nl,opCnx,op Avg,imOut);

Recommend


More recommend