ShiVaSmiles Code
A slick interface to see various scale analysis algorithms in action.
Brought to you by:
tibonihoo
ShiVa ^_^ The Shape Visualizer is intented to be an exploratory/educational tool making it quick and easy to see how various mathematical methods perform in analysing and selecting the various patterns present on an image. The main purpose is twofold: - provide basic implementation for the most famous scale-based analysis methods - provide a nice, intuitive GUI to make it easy to grasp the basic effects and uses of those analysis methods Current state of the application: - it has two sets of filter+measure implemented: * Fourier filtering with autocorrelation * Morphological opening with granulometry - the GUI supports basic interaction and visualization: * loading any type (color, grayscal, binary) image * select one of the two analysis (filter+measure) methods * plot the measure corresponding to the selected filtering method * chose to filter patterns that are larger or smaller than thresholds * inverting the displayed image * selecting horizontal and vertical scale thresholds for pattern filtering * forcing vertical and horizontal scale to be identical Feel free to try it, and don't hesitate to send your remarks and contributions via the sourceforge project page at : http://sourceforge.net/projects/shivasmiles/ Contributors ============ Thomas Retornaz Thibauld Nion Additional resources ==================== Some links and references about what's implemented and the way it is implemented. Fourier analysis ---------------- - Some formulas for most famous filters: http://fourier.eng.hmc.edu/e101/lectures/Fourier_Analysis/Fourier_Analysis.html - Nice illustrations & explanations: http://sharp.bu.edu/~slehar/fourier/fourier.html - Implementation library: kissfft http://kissfft.sourceforge.net/ Morphological analysis ---------------------- - Formulas and theoretical foundations: http://cmm.ensmp.fr/~serra/cours/ (III - Opening, Closing: http://cmm.ensmp.fr/~serra/cours/pdf/en/ch3en.pdf) - Visual explanations about morphological measures http://www.tibonihoo.net/teaching/MorphoDiapo/ - Implementation library: fulguro http://fulguro.sourceforge.net/ Building and testing -------------------- - CMake for build, test and doc: http://snikt.net/index.php/2010/04/01/howto-use-cmake-with-cc-projects - Simple tutorial for Boost.Test: http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/ Thibauld Nion (2012)