Mimas
(Added animated mimas-logo in 3GP format for the mobile phone) |
m (→Introduction) |
||
Line 2: | Line 2: | ||
=Introduction= | =Introduction= | ||
− | Mimas | + | '''Mimas''' is a '''C++ real-time computer vision library'''. It is easy to use and |
includes tools for edge detection, corner detection, various filters, optic | includes tools for edge detection, corner detection, various filters, optic | ||
flow, tracking, blob analysis, Web cam tools for real-time applications, and | flow, tracking, blob analysis, Web cam tools for real-time applications, and |
Revision as of 12:31, 21 March 2006
Contents |
Introduction
Mimas is a C++ real-time computer vision library. 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-2.0
Mimas-2.0 was released on Mar 15th 2005
Release Notes
- On newer systems, you have to force linking with libgfortran to build the lapack-wrappers (see here for more)
- Mesa off-screen rendering may crash NVidia's X-servers. NVidia doesn't support OSMesa.
- You'll experience a memory leak on most X-servers, when switching between on- and off-screen using X11-pixmaps. Therefore OSMesa is the preferred method for off-screen rendering. The configure script automatically will select OSMesa, if it is supported by your X-server.
Change log
- The mm_-prefix was removed from all classes in favour of the mimas-namespace.
- Direct transformation algorithms from different YUV formats to greyscale have been implemented.
- Various video sources (virtually any video file, DVDs, VCDs, streaming formats) are now accessible with mimas::image_xineinput, which is using libxine. See viewVideo example for more.
- Image files are now read using ImageMagick (Magick++), which allows reading and writing of animated GIFs, DICOM stacks (8 bit at the moment), FAX, Postscript, PDF, MPEG, RAS, ... See viewImage example for more.
- Mimas is configured to use OSMesa for off-screen rendering, if it is present on the system.
- The Mimas library now is independent of Qt. The examples, which are using Qt, have been ported to Qt4. This allows the Mimas library to be used with Qt3- as well as Qt4-programs.
- The function-wrappers for Fourier transform are now supporting both single and double precision.
- Lapack-wrappers extended with Cholesky factorisation and determinants.
- An example for L-systems was implemented.
Mimas-1.4
Mimas-1.4 was released on Nov 21th 2005.
Release Notes
- RPM-files for Mandrake 10.2 are provided.
- Don't run the mesa example on NVidia cards, as it crashes NVidia's Xorg-servers at the moment :(
Change log
- 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 uBLAS
- added wrappers for xml-library Xalan-C
- iterative pose-estimation for 3D-correspondences
Demonstrations
- 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
- Locating tungsten-tip by means of cross-correlation
The demonstrations are not part of the mimas-download!
Functionality
See Also
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.
External Links
- Sheffield Hallam University
- Yahoo newsgroup
- Mimas at freshmeat.net
- Image databases
- Download the animated Mimas-logo in 3GP-format for your mobile!