RAVL, Recognition And Vision Library
RAVL provides a base C++ class library, together with a range of computer
vision, pattern recognition classes and supporting tools. The aim of RAVL is
to move software developed within the Centre for Vision, Speech and Signal
Processing at the University of Surrey, England for research purposes into
the public domain and to support its use in a wider community.
Why should you use this library?
+ It has a simple user interface: the user does not have to use pointers or
deal with heap management. (Java programmers should find the interface
+ It has an I/O library that supports a wide range of file formats and
devices in a consistent manner (including image, video and audio). Type
conversion between file formats can be handled transparently.
+ It uses reference counting for large objects, making them thread-safe for
+ It is freely available from SourceForge
+ It is distributed under the GNU Lesser General Public License
+ It is straightforward to port to any operating system / platform that
conforms to the Posix standard, has an ANSII C++ compiler and a make
utility that supports the GNU extensions to that program.
Contributions to the library or suggestions on how it can be improved are
welcome they can be posted via the sourceforge web pages
( http://sourceforge.net/projects/ravl ) or sent directly to me at
PREFACE TO THE 1.1.10 RELEASE
Version 1.1 of RAVL introduces the use of the GNU AutoTools for the
installation process. This greatly simplifies the initial configuration of
the environment needed to build RAVL. RAVL can now automatically determine
what external libraries are available on your system and use them as is
appropriate. Please refer to the enclosed INSTALL file for details on
installing RAVL on UNIX and UNIX-like systems.
Revision 1.1 of RAVL also moves to providing all of the class libraries
in a single library file. This greatly simplifies the use of the class library
as there is no longer a need to link with the correct list of multiple
libraries, just the one RAVL library is needed. To this end, the user may now
employ the build tool of their choice and it is no longer necessary to build
client projects using the QMake utility. The user may configure their build
system either by manually declaring where the RAVL library and header files
have been installed or, if their build tool supports it, by directing it to
use the pkg-config utility which RAVL now supports.
When using QMake to build projects that use RAVL, the new single library will
automatically be used. Regardless of whether or not a SHAREDBUILD=1 build is
being undertaken, QMake will now link to the libRavl.so single, shared library
when building project binaries. It is possible to ask QMake to use the
original "Multi" RAVL libraries (libRavlExtImgIO; libRavlCore; etc.) by using
the setting USE_SINGLE_Ravl=0 on your qm command; e.g.:
qm USE_SINGLE_Ravl=0 opt
would build an optimised version of your application that was linked against
the RAVL "Multi" libraries, much as for earlier revisions of RAVL. In order to
use the Multi libraries, they must have first been installed. By default only
the single RAVL library is built and installed by the RAVL INSTALL procedure.
To make the Multi libraries available, the installer must additionally perform
the following procedure after the normal INSTALL process:
make optshared opt
make installoptsharedlib installopt
this will build and then install the Multi libraries in both shared and static
The RAVL libraries are distributed under the GNU LESSER GENERAL PUBLIC
LICENSE (LGPL), however some of the tools built with the library have been
issued under the more restrictive GNU GENERAL PUBLIC LICENSE, the headers
attached to each of the files in the project indicate which of these apply.
A copy of each software license is provided for information in the files
COPYING and COPYING.LESSER.
RAVL was originally derived from AMMA, written by Radek Marik with help from
many other members of CVSSP. The work of porting AMMA to RAVL was largely
undertaken by Charles Galambos, again with help from other members of CVSSP.
The RavlMath library includes ccmath, written by Daniel A. Atkinson. RAVL is
currently maintained by members of CVSSP and Omniperception.
A full suite of on-line documentation (including an on-line manual and slides
for an introductory presentation) is available from: