Mimas
m |
(Added links to projects, Mimas is depending on.) |
||
Line 69: | Line 69: | ||
=Software Engineering= | =Software Engineering= | ||
'''Mimas''' is using state-of-the-art software engineering. A variety of open-source tools and libraries is being used to develop '''Mimas''': | '''Mimas''' is using state-of-the-art software engineering. A variety of open-source tools and libraries is being used to develop '''Mimas''': | ||
− | # [[Image:Tux.jpg|30px|]] '''GNU/Linux''': Mimas is being developed for the | + | # [[Image:Tux.jpg|30px|]] '''GNU/Linux''': Mimas is being developed for the [http://www.kernel.org/ Linux] operating system. Mimas may run on other Posix4/UNIX systems as well. |
− | # [[Image:Qt logo.png|30px|]] '''Qt''': The Qt-library developed by [http://www.trolltech.com/ Trolltech] is used for implementing graphical user interfaces | + | # [[Image:Qt logo.png|30px|]] '''Qt''': The Qt-library developed by [http://www.trolltech.com/ Trolltech] is used for implementing graphical user interfaces. |
− | # [[Image:Gears.png|30px|]] '''Mesa''': Mesa is used to utilise hardware acceleration for displaying graphical primitives. | + | # [[Image:Gears.png|30px|]] '''Mesa''': [http://www.mesa3d.org/ Mesa] is used to utilise hardware acceleration for displaying graphical primitives and images. The [http://www.mesa3d.org/osmesa.html OSMesa] extension is used (if present) to do off-screen rendering. |
# [[Image:Stl logo.gif|30px|]] '''STL''': The software is making extensive use of the abstract data types provided by the [http://www.sgi.com/tech/stl/ Standard Template Library] | # [[Image:Stl logo.gif|30px|]] '''STL''': The software is making extensive use of the abstract data types provided by the [http://www.sgi.com/tech/stl/ Standard Template Library] | ||
− | # [[Image:Lapack logo.gif|30px|]] '''Lapack''': Mimas offers wrappers for accessing some functions of | + | # [[Image:Lapack logo.gif|30px|]] '''Lapack''': Mimas offers wrappers for accessing some functions of [http://www.netlib.org/lapack/lug/ Lapack]. |
# [[Image:C--boost logo.gif|80px|]] '''Boost''': The [http://www.boost.org/ Boost Library] offers smart pointers to do exception safe programming, multi-dimensional arrays, template meta-programming, abstract data types for linear algebra and many other programming concepts. The Boost library is going to be part of a future C++ standard. | # [[Image:C--boost logo.gif|80px|]] '''Boost''': The [http://www.boost.org/ Boost Library] offers smart pointers to do exception safe programming, multi-dimensional arrays, template meta-programming, abstract data types for linear algebra and many other programming concepts. The Boost library is going to be part of a future C++ standard. | ||
# [[Image:Magick logo.png|30px|]] '''Magick++''': Mimas uses [http://www.imagemagick.org/Magick++/ Magick++] to load and save images. | # [[Image:Magick logo.png|30px|]] '''Magick++''': Mimas uses [http://www.imagemagick.org/Magick++/ Magick++] to load and save images. | ||
− | # [[Image:Apache logo.gif|80px|]] '''Xalan-C''' and '''Xerces-C''': | + | # [[Image:Apache logo.gif|80px|]] '''Xalan-C''' and '''Xerces-C''': [http://xml.apache.org/xalan-c/ Xalan-C] and [http://xml.apache.org/xerces-c/ Xerces-C] are the XML-related C++-libraries of the Apache Software Foundation. They can be considered as the most complete implementations of the XML- (extended markup language), XSD- (XML schema description) and Xpath- (XML path) standards. |
# [[Image:Doxygen logo.png|80px|]] '''doxygen''' and [[Image:Dot logo.png|25px|]] '''graphviz''': The [http://www.stack.nl/~dimitri/doxygen/ doxygen] documentation system extracts inline-documentation from the C++ source code. | # [[Image:Doxygen logo.png|80px|]] '''doxygen''' and [[Image:Dot logo.png|25px|]] '''graphviz''': The [http://www.stack.nl/~dimitri/doxygen/ doxygen] documentation system extracts inline-documentation from the C++ source code. | ||
− | # [[Image:Fftw logo.gif|50px|]] '''FFTW''' is maybe the fastest library for performing discrete Fourier transforms. | + | # [[Image:Fftw logo.gif|50px|]] '''FFTW'''. The [http://www.fftw.org/ fftw]-library is maybe the fastest library for performing discrete Fourier transforms. |
− | # '''popt''': The popt-library was used to implement command-line interfaces. | + | # [[Image:Popt logo.png|90px|]] '''popt''': The popt-library was used to implement command-line interfaces. |
# [[Image:Xine logo.png|60px|]] '''xine''': Mimas (version 2.0 and later) can access videos using [http://www.xinehq.de/ libxine]. | # [[Image:Xine logo.png|60px|]] '''xine''': Mimas (version 2.0 and later) can access videos using [http://www.xinehq.de/ libxine]. | ||
− | # [[Image:Gnuplot logo.gif|30px|]] ''Gnuplot'': Gnuplot is used for plotting functions. | + | # [[Image:Gnuplot logo.gif|30px|]] '''Gnuplot''': [http://www.gnuplot.info/ Gnuplot] is used for plotting functions. |
− | # [[Image:Cvs logo.gif|30px|]] '''cvs''' and [[Image:Gnu-arch logo.png|30px|]] ''' | + | # [[Image:Cvs logo.gif|30px|]] '''cvs''' and [[Image:Gnu-arch logo.png|30px|]] '''gnu-arch''': Earlier [http://www.nongnu.org/cvs/ cvs] was used for version control. Now [http://www.gnu.org/software/gnu-arch/ gnu-arch] is being used. |
− | # [[Image:Gcc logo.png|30px|]] '''Gcc''': | + | # [[Image:Gcc logo.png|30px|]] '''Gcc''': [http://www.gnu.org/software/gcc/ gcc] is the C++ compiler of the GNU project. |
− | # [[Image:Gstreamer logo.png|80px|]] '''gstreamer''': Mimas has a plugin for interfacing with | + | # [[Image:Gstreamer logo.png|80px|]] '''gstreamer''': Mimas has a plugin for interfacing with [http://www.gstreamer.net/ gstreamer]. |
− | # '''autoconf''', '''automake''' and '''make''': | + | # [[Image:Gnu-head.jpg|35px|]] '''autoconf''', '''automake''' and '''make''': [http://www.gnu.org/software/make/ make], [http://www.gnu.org/software/autoconf/ autoconf] and [http://www.gnu.org/software/automake/ automake] are used to configure and perform the build of the software on various distributions of the Linux operating system. |
− | + | ||
=Download= | =Download= |
Revision as of 20:02, 17 January 2006
Contents |
Introduction
Mimas Toolkit is a C++ real-time computer vision toolkit. It is easy to use and includes tools for edge detection, corner detection, various filters, optic flow, tracking, blob analysis, Web cam tools for real-time applications, and much more. It also includes many implementations of traditional algorithms such as Canny. It was developed for GNU/Linux but as the GUI is largely separate, porting to other platforms should be straightforward.
Announcements
Mimas-1.4
Mimas-1.4 was released on Nov 21th 2005.
- Don't run the mesa example on NVidia cards, as it crashes NVidia's Xorg-servers at the moment :(
- Support for firewire digital cameras (accessed using libdc1394)
- shift and rotation estimation using the fourier transform
Mimas-1.3
Mimas-1.3 was released on Jul 29th 2005.
Release Notes
- No rpm-files are provided this time.
- "make install" now will install documentation and the compiled examples under /usr/share/doc/mimas-devel-1.3/
Change log
Notable changes include:
- Convolution for n-dimensional arrays and images and faster LSI-filters have been implemented.
- Operators for images have been added (f.e. "image3=(image1-image2)*3.0").
- 2D-image-iterators have been implemented.
- Support for mesa offscreen- and onscreen-rendering has been added.
- Object-recognition using moments was implemented.
Mimas-1.2
Mimas-1.2 released on Feb 28th 2005.
Release Notes
- The lib*.so-files have been moved to the rpm-devel-package. This is a bug-fix, which also resolved the problem with superfluous dependencies. The rpm-packages are for Mandrake 10.0 only.
Change Log
- type-traits for pixel-conversion
- new grabber class (video4linux)
- introduced boost::numeric::ublas-classes
- added wrappers for xml-library Xalan-C
- iterative pose-estimation for 3D-correspondences
Demonstrations
- MiCRoN Microscope Vision Software
- Ascii-art using mimas and aalib.
- Camera surveilance
- Microscope Control Software
- Sugar Pushing
- Depth from Focus
- Registration of TEM images
- Gradient Based Motion Estimation
The demonstrations are not part of the mimas-download!
Functionality
Software Engineering
Mimas is using state-of-the-art software engineering. A variety of open-source tools and libraries is being used to develop Mimas:
- GNU/Linux: Mimas is being developed for the Linux operating system. Mimas may run on other Posix4/UNIX systems as well.
- Qt: The Qt-library developed by Trolltech is used for implementing graphical user interfaces.
- Mesa: Mesa is used to utilise hardware acceleration for displaying graphical primitives and images. The OSMesa extension is used (if present) to do off-screen rendering.
- STL: The software is making extensive use of the abstract data types provided by the Standard Template Library
- Lapack: Mimas offers wrappers for accessing some functions of Lapack.
- Boost: The Boost Library offers smart pointers to do exception safe programming, multi-dimensional arrays, template meta-programming, abstract data types for linear algebra and many other programming concepts. The Boost library is going to be part of a future C++ standard.
- Magick++: Mimas uses Magick++ to load and save images.
- Xalan-C and Xerces-C: Xalan-C and Xerces-C are the XML-related C++-libraries of the Apache Software Foundation. They can be considered as the most complete implementations of the XML- (extended markup language), XSD- (XML schema description) and Xpath- (XML path) standards.
- doxygen and graphviz: The doxygen documentation system extracts inline-documentation from the C++ source code.
- FFTW. The fftw-library is maybe the fastest library for performing discrete Fourier transforms.
- popt: The popt-library was used to implement command-line interfaces.
- xine: Mimas (version 2.0 and later) can access videos using libxine.
- Gnuplot: Gnuplot is used for plotting functions.
- cvs and gnu-arch: Earlier cvs was used for version control. Now gnu-arch is being used.
- Gcc: gcc is the C++ compiler of the GNU project.
- gstreamer: Mimas has a plugin for interfacing with gstreamer.
- autoconf, automake and make: make, autoconf and automake are used to configure and perform the build of the software on various distributions of the Linux operating system.