iRoCS Toolbox  1.1.0
ProjectDesc.hh
Go to the documentation of this file.
1 /**************************************************************************
2  *
3  * Copyright (C) 2008 Alexandra Teynor
4  *
5  * Image Analysis Lab, University of Freiburg, Germany
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  *
21  **************************************************************************/
22 
23 /*
24  *
25  * \mainpage libBlitz2Dgraphics
26  *
27  * This is a little collection of graphics related functions for images stored
28  * within blitz arrays.
29  * <br><br>
30  *
31  * \section sec1 Overview of the functionality
32  * <ul>
33  * <li>Reading images to blitz arrays from the following formats:<br>
34  * jpg, png, tiff
35  * </li>
36  *
37  * <li>Writing images from blitz arrays to the following formats:<br>
38  * jpg, png, ppm(ascii), pgm(ascii)
39  * </li>
40  *
41  * <li>Basic color space conversion:<br>
42  * rgb &lt;=&gt; hsv, hsv &lt;=&gt; rgb, rgb &lt;=&gt; gray,
43  * </li>
44  *
45  * <li>Drawing of basic graphic primitives<br>
46  * lines, circles, rectangles
47  * </li>
48  *
49  * <li>Very simple color management<br>
50  * some predefined colors and a jet color map
51  * </li>
52  *
53  * </ul>
54  * <br>
55  *
56  * \section sec2 blitz::Arrays as images
57  *
58  *
59  * There are basically two storage formats:
60  *
61  * <ol>
62  * <li> <b>3D blitz arrays</b> (layered representation) <br><br>
63  * The first dimension describes the different color layers,
64  * typically RGB (red, green, blue) or HSV (hue, saturation,
65  * value). The second dimension specifies the y, and the
66  * third dimension the x coordinate. For gray images,
67  * the extent of the first dimension is 1.
68  * In this format, the individual color layers are stored
69  * consecutively in memory, and processing of individual
70  * color layers becomes more efficient.
71  * <br><br>
72  * For RGB images, the data type is unsigned char, for HSV
73  * images the data type is float:<br>
74  * blitz::Array&lt;unsigned char, 3&gt; rgbImage;<br>
75  * blitz::Array&lt;float, 3&gt; hsvImage;
76  * <br><br>
77  * </li>
78  *
79  * <li> <b>2D blitz arrays</b> (vectorial representation) <br><br>
80  * The first dimension specifies the y, the second
81  * dimension the x coordinate of a pixel. The color at each pixel
82  * is represented as a blitz::TinyVector with 3 entries. They represent
83  * the RGB or HSV values. For gray images, scalars are used for each
84  * array entry.
85  * <br><br>
86  * Again, for RGB and gray images, the data type is unsigned char, for HSV
87  * images the data type is float:
88  * blitz::Array&lt;blitz::TinyVector&lt;unsigned char,
89  * 3&gt;, 2&gt; rgbImage;<br>
90  * blitz::Array&lt;unsigned char, 2&gt; grayImage;<br>
91  * blitz::Array&lt;blitz::TinyVector&lt;float, 3&gt;, 2&gt; hsvImage;<br>
92  * </li>
93  * </ol>
94  * <br>
95  *
96  * \section sec3 Prerequisites
97  *
98  * This library depends on the following libraries:
99  *
100  * <ul>
101  * <li> Blitz++ <a href=http://www.oonumerics.org/blitz/>
102  * http://www.oonumerics.org/blitz/</a><br>
103  * In the libBlitz2DGraphics library, we use a wrapped version
104  * of the blitz library by the chair of pattern recognition and
105  * image processing Freiburg (lmb). You can also use the standard
106  * blitz library, then only the part concerning the blitz library in
107  * the configure.in has to be exchanged.
108  * </li>
109  *
110  * <li>jpeglib
111  * <a href=ftp://ftp.uu.net/graphics/jpeg/>ftp://ftp.uu.net/graphics/jpeg/
112  * </a><br>
113  * Developed with version 62, but should work with others as well.
114  * </li>
115  *
116  * <li>pnglib
117  * <a href=http://www.libpng.org/pub/png/libpng.html>
118  * http://www.libpng.org/pub/png/libpng.html</a><br>
119  * Developed with version 1.2.15beta5, but should work with others as well.
120  * </li>
121  *
122  * <li>tifflib
123  * <a href=http://www.libtiff.org/>
124  * http://www.libtiff.org</a><br>
125  * Developed with version 3.8.2, but should work with others as well.
126  * </li>
127  * </ul>
128  *
129  * <br>
130  *
131  * Questions and comments to:<br>
132  * Alex.Teynor (teynor AT informatik.uni-freiburg.de)
133  * <br><br>
134  * December 2008
135  *
136  *
137  *********************************************************/
138 
139