<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<a href="http://vxl.sourceforge.net/" border=0><img ALT="VXL" src="logo1-quant.gif" border=0 align="absmiddle" width="128" height="48"></a>
<a href="#examples">[Example code and images]</a>
<a href="#mail">[Mailing list]</a>
<a href="#dashboard">[Builds dashboard]</a>
<a href="#bugs">[Bug reports]</a>
<a href="#download">[Download and install]</a>.
<h2><a name = "intro">Introduction: What is VXL? </a></h2>
VXL (the Vision-something-Libraries) is a collection of C++ libraries designed for computer
vision research. It was created from <a href="http://www.esat.kuleuven.ac.be/~targetjr/">
TargetJr</a> and the <a href="http://www.aai.com/AAI/IUE/IUE.html"> Image Understanding Environment</a>
(IUE) with the aim of making a lighter, faster and more consistent system. VXL is written in ANSI/ISO
C++ and is designed to be portable over many platforms.
The core libraries in VXL are:
<li><b>vcl (C++ compatibility layer)</b>: This library exists purely to make sure all standard C++
libraries are the same on all compilers. This means that all standard headers in VXL are
preceeded with the letters vcl_, so for example instead of including <code><vector></code> you would include
<code><vcl_vector.h></code> and would use <code>vcl_vector<></code> rather than <code>std::vector<></code> in your
<li><b>vnl (numerical algorithms)</b>: Numerical containers and algorithms, in particular vnl provides
matrix and vector classes with operations for manipulating them, such as matrix decompositions.
<li><b>vil (imaging)</b>: Loading, saving and manipulating images in many common file formats, including very large images.
<li><b>vgl (geometry)</b>: Geometry for points, curves and other objects in 1, 2 or 3 dimensions.
<li><b>vbl (basic templates)</b>: A collection of useful templated C++ classes and functions
that would have been in the STL if we had designed it. For example smart pointers,
2D and 3D arrays, sparse 2D and 3D arrays.
<li><b>vul (utilities)</b>: Useful non-numeric bit of code, e.g. for file,
directory, and url handling, command-line parsing, using strings, timing, etc.
To prevent too much interdependency between libraries, there are strict rules on which libraries may use each other
with vcl on the top level and vbl, vnl, vil, vul and vgl depending on it. Since vbl, vnl, vil and vgl are on the same
level it means that they cannot refer to each other. Functions that would logically belong in vgl say, but depend
on functions from vnl would be placed in the library vgl_algo. The libraries vgl_algo, vil_algo and vnl_algo are
on the third level. Finally there is a level of libraries with 4 letter names (v**l) which may depend on any of the
3 letter core libraries. For a more detailed description of the libraries and the layering scheme see
<a href="http://www.isbe.man.ac.uk/public_vxl_doc/books/vxl/book.html">the VXL book</a>.
<a name = "docs">
<h2>Documentation </h2> </a>
<h3>Documentation on the whole of VXL</h3>
There are two main references for information on the whole of VXL:
<li><a href="http://www.isbe.man.ac.uk/public_vxl_doc/">VXL package documentation</a>
- this documents the latest development version of VXL.
It has a detailed description of every
class and function in VXL which is auto-generated from the code using doxygen.
An alternative lay-out with essentially identical content can be found
<li><a href="http://www.isbe.man.ac.uk/public_vxl_doc/books/vxl/book.html">VXL book</a>
- this is a single reference for all high-level documentation on VXL. It currently documents
the release version of VXL (VXL 1.0 beta).
The <a href="http://www.isbe.man.ac.uk/search_vxl.html">documentation search</a> page is useful for quickly finding documentation on.
These are short guides to specific areas in VXL:
<li><b>xcv</b> is an application built to demonstrate the functionality of the VXL libraries.
<li> There is a <a href="manuals/xcv/newxcv.html">guide to using xcv</A>
(also available <a href="manuals/xcv.ps.gz">in postscript
<li>Download <a href="manuals/xcv.zip">xcv for Windows</a>,
<a href="manuals/xcv-SunOS5.bin.gz">xcv for solaris</a>.
and <a href="manuals/xcv-linux.bin.gz">xcv for linux</a>
<li>Here is some <a href ="manuals/xcvdata.tar.gz">example data</a>
suitable for use with xcv.
<li><b>vgui</b> is the VXL graphical user interface library.
<li>For a simple introduction to using VGUI there is the
<a href="manuals/vgui_users_guide/index.html">VGUI users guide</a>
(also <a href="manuals/vgui_users_guide.ps.gz">in postscript format</a>).
Here is the <a href ="manuals/examples-tutorial.tar.gz">
example code</a> used in the guide.
<li>The <a href="manuals/vgui_ref_manual/index.html">
VGUI reference manual</a> (also <a href="manuals/vgui_ref_manual.ps.gz">in postscript format</a>) is designed for developers of VGUI.
xcv and vgui have not changed a lot since the last release of VXL so these guides should be useful for both
the release and development versions of VXL.
<a name = "examples">
<h2>Example code and images</h2>
<li><a href ="manuals/examples.tar.gz">Example code with no user interface</a>
<li><a href ="manuals/examples-with-vgui.tar.gz">Example code using vgui</a>
<li><a href ="manuals/examples-gtk.tar.gz">Examples using gtk</a>
<li><a href ="manuals/images.tar.gz">Example images</a>
<h2><a name = "mail">Mailing list</a> </h2>
The <a href="http://sourceforge.net/mail/?group_id=24293">VXL mailing
lists</a> are at SourceForge. You can find list descriptions,
subscription information, and archives there. Until the messages from
the old mailing lists are populated into the SourceForge lists, you
can browse the old archives by <a
or in <a
<h2><a name = "dashboard">Dashboard</a> </h2>
The <a href="http://www.cs.rpi.edu/research/vision/vxl/testing/Testing/HTML/TestingResults/Dashboard/MostRecentResults-Nightly/Dashboard.html">dashboard</a>
is a summary (collated from different machines at different sites in
different timezones) of the current build status of VXL. More builds
are welcome; just follow the <a href="submit-build.html">instructions for submitting a build</a>.
<h2><a name = "bugs"> Reporting bugs to the mailing list </a> </h2>
If you think you have found a bug, or if you have an installation or build problem
which is not covered on this page (see below), please submit a bug
report on <a href="http://sourceforge.net/tracker/?group_id=24293">VXL tracker</a>.
Also supply the following information unless you know for certain it is not relevant:
<li> Exactly what you did and exactly what goes wrong. Be verbose. We need to know this in order to help.
If you have problems configuring VXL, include the options you gave to configure and the output it
produced. If you have problems compiling VXL, include the command the makefiles issued, as well as
the entire error message.
<li> Compiler and <i> compiler version number </i>. For gcc, this means we want the output of the
two shell commands "gcc -v" and "g++ -v" (yes, both, please - they have been known to differ). For other
compilers try -V, -ver, -version or read the manual.
<li> Operating system (e.g. linux/solaris/irix) and architecture (e.g. i368/sparc/mips). If this
means nothing to you, give some indication of the sort of machine (e.g. does it have "Indy"
or "AEGIS" or "Ultra" or "Cray" or "HAL" etc written on it?).
<h2><a name = "download">Download and install </a> </h2>
You can either download the latest official release (VXL 1.0 beta) or the latest development version of VXL.
VXL 1.0 beta is a frozen version of VXL. This version is reasonably bug-free but
is now fairly out of date (we hope to have the release of VXL 1.0 proper in the near future).
If you are only interested in using VXL as a collection of libraries then this is the
<li><a href="releases/vxl-1.0-beta.html">Download VXL 1.0 beta</a>
<li><a href="releases/install-beta.html">Installing beta version</a>
If you wish you may download the latest development version of VXL (you will definitely need this version if you are
interested in contributing to VXL). The latest version of VXL is available from SourceForge and can be downloaded
using CVS (Concurrent Versions System). You will also need to download CMake from the KitWare website (this is a
tool for generating makefiles or Microsoft project files that is used by the latest version of VXL).
<li><a href="http://www.gnu.org/software/cvs/cvs.html">CVS homepage</a>. If you are using a Windows platform
you may wish to use <a href="http://sources.redhat.com/cygwin/">Cygwin</a> or <a href="http://www.wincvs.org">WinCVS</a>
which provide a nice GUI for CVS.
<li><a href="http://public.kitware.com/CMake/">CMake homepage</a>
<li><a href="http://sourceforge.net/cvs/?group_id=24293">Download latest development version of VXL</a>
<li><a href="releases/install-latest.html">Installing latest VXL</a>
The following links may be helpful if you work under Windows.
<li> <a href="http://www.cs.bris.ac.uk/~cooper/vxlcvs.html">VXL using
CVS and SourceForge</a>
<li> <a href="http://www.cs.bris.ac.uk/~cooper/sshcvs.html">SSH and
CVS under Windows</a>
Hosted by <A href="http://sourceforge.net">
<IMG src="http://sourceforge.net/sflogo.php?group_id=24293&type=1" alt="SourceForge Logo" align="absmiddle" border="0"> </A>