meta data for this page
Itlabcpp snapshots can be downloaded from Itlab CPP Library Releases.
Itlabcpp is in Subversion. Do not use the CVS tree anymore.
A machine vision oriented C++ library can be found in the Subversion module
base. Please, see the
README file there.
Repository URL: https://www2.it.lut.fi/svn/mvpr/itlabcpp/trunk
Note: Itlab CPP Library CodingStyle has been written in the beginning of June, 2007. All new code should follow this style.
A mailing list has been created for the ITLAB c++ library. You should join it by sending an empty message to
firstname.lastname@example.org. The main reason for having the list is to keep everybody
up-to-date with changes in the library.
The list should be used to announce whenever you have made a change in the library that might affect other users of the library. You should also announce when new functionalities become available for the other users. You might also warn others in advance, if you plan to merge a large branch you have developed to the main trunk of the lib, as this might have an effect on others.
- TooN (Tom's object-oriented numerics), C++ templated vector/matrix library, needs to be installed locally, is not available in main Linux distributions.
- The easiest way to install TooN is to use the script
install_TooN.bashin itlabcpp which installs TooN from its CVS repository.
- TooN also requires that BLAS and LAPACK are installed (available in major linux distributions, e.g, lapack3 in Ubuntu/Debian)
|module||dependencies||required Ubuntu packages|
|*||compiler tool chain||build-essential|
|*||OpenCV||libcv-dev, libcvaux-dev, libhighgui-dev|
|Fwdev||libdc1394 1.x, libraw1394||libdc1394-13-dev|
|GLAlgorithms||libGL, libGLU||(proprietary graphics drivers), libglu1-mesa-dev|
|GLGraphics||libGL, libGLU||(proprietary graphics drivers), libglu1-mesa-dev|
|Hardware/JR3Sensor||jr3pci kernel driver||(N/A)|
For libpcan, see http://www.peak-system.com/fileadmin/media/linux/index.htm
Notes for Ubuntu
- Ubuntu does not seem to support pkg-config for LAPACK. For this reason, the LAPACK_LIBS in config.mk must be set by hand to
LAPACK_LIBS := -llapack.
Notes for Ubuntu 8.04
- To install LAPACK you can use
sudo apt-get install liblapack3gf libgfortran2
- In my installation, a symlink to libgfortran was missing. The missing symlink can be created by changing directory to /usr/lib and then executing
sudo ln -s libgfortran.so.2 libgfortran.so
- In Ubuntu 8.04 the LAPACK_LIBS needs to be set to
LAPACK_LIBS := -llapack -lgfortran2(see above).
Notes for Ubuntu 9.04
- Required packages are: build-essential libcv-dev liblapack-dev libdc1394-13-dev (and their dependencies/recommends)
- Modules NetCamera and Hardware (MAINDIRS in config.mk) cannot be compiled. NetCamera uses libavcodec and the version in Ubuntu 9.04 is not compatible, and Hardware requires libpcan (peak-linux-driver), which is not packaged in Ubuntu
- For the module GLGraphics (OpenGL stuff) you may need to install at least: libgl1-mesa-dev and libglu1-mesa-dev
Notes for Ubuntu 9.10
- libdc1394-13-dev needs to be installed from Ubuntu 9.04 since the package does not exist anymore in Ubuntu 9.10.
- To do this, add to /etc/apt/sources.list the line
deb http://fi.archive.ubuntu.com/ubuntu jaunty main
All contributions must be under the MIT license, which is reproduced here with proper exemplary substitutions:
Copyright (c) Firstname Lastname <email@example.com> 2007 Second Author <firstname.lastname@example.org> 2008 - 2010 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This license must be in the beginning of every source code file where applicable. Substantial contributors should add their names and years to the proper copyright texts in the library.
Foreign code with an MIT compatible license or completely in public domain is acceptable. However, note that especially GPL or LGPL licensed code is not acceptable.
The development of the library has reached a point where we need to use real branches. Forking is not allowed, because changes are supposed to be merged back into the trunk. All branches should be documented here. Especially incompatible changes should be done in branches.
Be careful when dealing with branches, especially with merges. For merging instructions, use the Subversion book.
- branch tag: ville_image
- start tag: ver0
- root: itlab/itlabcpp/base
- status: merged, closed
Migration to OpenCV-based image formats and routines.
- branch tag: Config_0-branch
- start tag: Config_0-begin
- root: itlab/itlabcpp/base
- status: merged to trunk Sept 13th, 2007; merged to trunk Oct 10th, 2007; closed
Rewrite of the configuration file utilities, and getting rid of CommonC++2.
Sept 13th merge was to give the new Config code base for public use.
Oct 10th merge eradicated CommonC++2 dependency, and introduced a replacement implementation of threading for TXwindow. Everything uses now the new Config classes, the old Conf is not used and will be removed later. Tag:
- root: mvpr/itlabcpp
- status: merged to trunk, closed.
Upgrading Itlabcpp to TooN version 2, because TooN maintenance branch has serious issues (see TooN documentation).
Information and help for Moving to TooN2 has been collected.
- branch tag: Treemake_0-branch
- start tag: Treemake_0-begin
- root: itlab/itlabcpp
- status: merged to trunk 8.10.2008, closed.
Rewrite of the build system.
Active projects using the Library
These projects should be consulted before merging changes into the trunk breaking old applications.
- http://www.it.lut.fi/project/rtmosaic/ Pekka Paalanen
- http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html Gnu libstd++-v3 documentation
- http://www.doxygen.org/ Doxygen and documentation
- http://www.ics.forth.gr/~lourakis/sba/ Levenberg-Marquardt optimization and Sparse Bundle Adjustment in C/C++,GPL
- http://cheshirekow.com/blog/?p=335 HTML Documentation with Equation Numbers (Referencing an External PDF Document with Doxygen’s HTML Documentation)