back to the #itlab main page

About

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 itlabcpp, directory 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 itlabcpp-on@lists.lut.fi. 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.

Dependencies

Global dependencies:

  • 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.bash in 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)
  • OpenCV (Open Computer Vision library), recommended version 2.1. Note, that OpenCV 2.0.0 contains known bugs, e.g. https://code.ros.org/trac/opencv/changeset/2363

Dependency table:

module dependencies required Ubuntu packages
* compiler tool chain build-essential
* OpenCV libcv-dev, libcvaux-dev, libhighgui-dev
* TooN (N/A), liblapack-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/DSACON32 libpcan (N/A)
Hardware/JR3Sensor jr3pci kernel driver (N/A)
Hardware/PG70 libpcan (N/A)
NetCamera ffmpeg-0.4.9_p20061016, curl ?
Xwindow libX11 libx11-dev

For libpcan, see http://www.peak-system.com/fileadmin/media/linux/index.htm

Installation notes

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.

License

All contributions must be under the MIT license, which is reproduced here with proper exemplary substitutions:

Copyright (c)
	Firstname Lastname <firstname.lastname@lut.fi> 2007
	Second Author <author@lut.fi.invalid> 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.

Branches

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.

ville_image

  • branch tag: ville_image
  • start tag: ver0
  • root: itlab/itlabcpp/base
  • status: merged, closed

Migration to OpenCV-based image formats and routines.

Config_0-branch

  • 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: Config_0-merge2

Toon2-branch

  • 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.

Treemake_0-branch

  • 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.

common/itlab_cpp_library.txt · Last modified: 2011/09/02 12:04 (external edit)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0