reference.dox
10.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
/// \defgroup BasicConcepts Basic Concepts
/// \brief Various basic concepts
/// \defgroup Point Point
/// \brief N-dimensional point
/// \defgroup PointConcept Concepts
/// \ingroup Point
/// \brief Concepts for points
/// \defgroup PointModel Models
/// \ingroup Point
/// \brief Models for points
/// \defgroup PointAlgorithm Algorithms and Utility Functions
/// \ingroup Point
/// \brief Algorithms and Utility Functions for points
/// \defgroup ColorSpaceAndLayout Color, Color Space, and Layout
/// \brief The color space and the layout define the set, ordering and interpretation of channels in a pixel
/// \defgroup ColorSpaceAndLayoutConcept Concepts
/// \ingroup ColorSpaceAndLayout
/// \defgroup ColorSpaceAndLayoutModel Models
/// \ingroup ColorSpaceAndLayout
/// \defgroup ColorNameModel Color Names
/// \ingroup ColorSpaceAndLayoutModel
/// \defgroup ColorSpaceModel Color Spaces
/// \ingroup ColorSpaceAndLayoutModel
/// \defgroup LayoutModel Layouts
/// \ingroup ColorSpaceAndLayoutModel
/// \defgroup Channel Channel
/// \brief Channel is the building block of pixel
/// \defgroup ChannelConcept Concepts
/// \ingroup Channel
/// \brief Concepts for channels
/// \defgroup ChannelModel Models
/// \ingroup Channel
/// \brief Channel models. Although not required by the ChannelConcept, all GIL-provided channels support arithmetic operations
/// \defgroup ChannelAlgorithm Algorithms and Utility Functions
/// \ingroup Channel
/// \brief Channel algorithms, metafunctions and utility functions
/**
\defgroup ColorBase ColorBase
\brief A color base is a container of color elements.
The most common use of color base is in the implementation of a pixel, in which case the color
elements are channel values. The color base concept, however, can be used in other scenarios. For example, a planar pixel has channels that are not
contiguous in memory. Its reference is a proxy class that uses a color base whose elements are channel references. Its iterator uses a color base
whose elements are channel iterators.
*/
/// \defgroup ColorBaseConcept Concepts
/// \ingroup ColorBase
/// \brief ColorBase concepts
/// \defgroup ColorBaseModel Models
/// \ingroup ColorBase
/// \brief ColorBase models
/// \defgroup ColorBaseAlgorithm Algorithms and Utility Functions
/// \ingroup ColorBase
/// \brief ColorBase algorithms, metafunctions and utility functions
/**
\defgroup PixelBased PixelBased
\brief Concepts for all GIL constructs that are pixel-based (pixels, pixel iterators, locators, views, images).
PixelBasedConcept provides a uniform interface for getting some common properties of pixel-based constructs, such as the number of channels,
the color space, the layout, etc.
*/
/// \defgroup PixelBasedConcept Concepts
/// \ingroup PixelBased
/// \brief PixelBased concepts
/// \defgroup PixelBasedModel Models
/// \ingroup PixelBased
/// \brief PixelBased models
/// \defgroup PixelBasedAlgorithm Algorithms and Utility Functions
/// \ingroup PixelBased
/// \brief PixelBased algorithms, metafunctions and utility functions.
/**
\defgroup Pixel Pixel
\brief A pixel is a set of channels defining the color at a given point in an image.
Conceptually, a pixel is little more than a color base whose elements model \p ChannelConcept.
Many properties of pixels inherit from color bases: pixels may be <i>homogeneous</i> if all of their channels have the same type; otherwise they are
called <i>heterogeneous</i>. The channels of a pixel may be addressed using semantic or physical indexing, or by color; all color base algorithms
work on pixels as well. Two pixels are <i>compatible</i> if their color spaces are the same and their channels, paired semantically, are compatible.
Note that constness, memory organization and reference/value are ignored. For example, an 8-bit RGB planar reference is compatible to a constant 8-bit
BGR interleaved pixel value. Most pairwise pixel operations (copy construction, assignment, equality, etc.) are only defined for compatible pixels.
*/
/// \defgroup PixelConcept Concepts
/// \ingroup Pixel
/// \brief Pixel concepts
/// \defgroup PixelModel Models
/// \ingroup Pixel
/// \brief Pixel models
/**
\defgroup PixelAlgorithm Algorithms and Utility Functions
\ingroup Pixel
\brief Pixel algorithms, metafunctions and utility functions.
Since pixels model the ColorBaseConcept, all color-base related algorithms also apply to pixels. See \ref ColorBaseAlgorithm for more.
*/
/// \defgroup PixelDereferenceAdaptor Pixel Dereference Adaptor
/// \brief A function object invoked upon accessing of the pixel of a pixel iterator/locator/view
/// \defgroup PixelDereferenceAdaptorConcept Concepts
/// \ingroup PixelDereferenceAdaptor
/// \defgroup PixelDereferenceAdaptorModel Models
/// \ingroup PixelDereferenceAdaptor
/// \defgroup PixelIterator Pixel Iterator
/// \brief STL Iterators over models of PixelConcept
/// \defgroup PixelIteratorConcept Concepts
/// \ingroup PixelIterator
/// \brief Pixel iterator concepts
/// \defgroup PixelIteratorModel Models
/// \ingroup PixelIterator
/// \brief Pixel iterator models
/// \defgroup PixelLocator Pixel Locator
/// \brief Generalization of an iterator to multiple dimensions
/// \defgroup PixelLocatorConcept Concepts
/// \ingroup PixelLocator
/// \brief Pixel locator concepts
/// \defgroup PixelLocatorModel Models
/// \ingroup PixelLocator
/// \brief Pixel locator models
/// \defgroup ImageView Image View
/// \brief N-dimensional range
/// \defgroup ImageViewConcept Concepts
/// \ingroup ImageView
/// \brief Image view concepts
/// \defgroup ImageViewModel Models
/// \ingroup ImageView
/// \brief Image view models
/// \defgroup ImageViewAlgorithm Algorithms and Utility Functions
/// \ingroup ImageView
/// \brief Image view algorithms, metafunctions and utility functions
/**
\defgroup Image Image
\brief N-dimensional container
An image is a container of N-dimensional data. GIL provides only one model, a two dimensional image whose \p value_type is a pixel.
Images are regular types (which means they have a default constructor, a copy constructor, \p operator=, \p operator==, \p operator!=, and \p swap)
As containers, images own the data, which means they allocate the data in their constructors and deallocate in the destructors. Their copy construction,
assignment and equality comparison is deep (i.e. propagates the operation to the values). That makes images expensive to pass by value, unlike views.
Also, unlike views, images propagate their constness to the data. An const-qualified image does not allow for modifying its pixels and does not provide
a mutable view over its pixels.
Images provide two services: they manage ownership of their data (the pixels) and they can return a view over their pixels.
Algorithms predominantly operate on views. This is analogous to the STL: In the STL containers (like \p std::vector) provide ranges (\p vec.begin()
and \p vec.end() ) and algorithms typically operate on ranges. The GIL equivalent of a range is an image view.
*/
/// \defgroup ImageConcept Concepts
/// \ingroup Image
/// \brief Image concepts
/// \defgroup ImageModel Models
/// \ingroup Image
/// \brief Image models
/**
\defgroup ImageProcessing Image Processing
\brief Image Processing algorithms
Collection of image processing algorithms currently implemented by GIL.
*/
/// \defgroup Variant Variant
/// \brief A holder of a runtime instantiated type. Used to provide runtime-specified images and views
/// \defgroup Metafunctions Metafunctions
/// \brief Metafunctions to construct or query GIL types
/// \defgroup TypeFactory Type Factory Metafunctions
/// \ingroup Metafunctions
/// \brief Metafunctions that construct GIL types from related types or from components
/// \defgroup TypeAnalysis Type Analysis Metafunctions
/// \ingroup Metafunctions
/// \brief Metafunctions that determine properties of GIL types
/// \defgroup IO I/O
/// \brief Support for reading and writing images to file
/// \defgroup JPEG_IO JPEG I/O
/// \ingroup IO
/// \brief Support for reading and writing JPEG image files
/// \defgroup TIFF_IO TIFF I/O
/// \ingroup IO
/// \brief Support for reading and writing TIFF image files
/// \defgroup PNG_IO PNG I/O
/// \ingroup IO
/// \brief Support for reading and writing PNG image files
/*!
\mainpage API Reference
\section Modules
- \ref BasicConcepts
- \ref Point
- \ref PointConcept
- \ref PointModel
- \ref PointAlgorithm
- \ref ColorSpaceAndLayout
- \ref ColorSpaceAndLayoutConcept
- \ref ColorSpaceAndLayoutModel
- \ref Channel
- \ref ChannelConcept
- \ref ChannelModel
- \ref ChannelAlgorithm
- \ref ColorBase
- \ref ColorBaseConcept
- \ref ColorBaseModel
- \ref ColorBaseAlgorithm
- \ref PixelBased
- \ref PixelBasedConcept
- \ref PixelBasedModel
- \ref PixelBasedAlgorithm
- \ref Pixel
- \ref PixelConcept
- \ref PixelModel
- \ref PixelAlgorithm
- \ref PixelDereferenceAdaptor
- \ref PixelDereferenceAdaptorConcept
- \ref PixelDereferenceAdaptorModel
- \ref PixelIterator
- \ref PixelIteratorConcept
- \ref PixelIteratorModel
- \ref PixelLocator
- \ref PixelLocatorConcept
- \ref PixelLocatorModel
- \ref ImageView
- \ref ImageViewConcept
- \ref ImageViewModel
- \ref ImageViewAlgorithm
- \ref Image
- \ref ImageConcept
- \ref ImageModel
- \ref ImageProcessing
- \ref Metafunctions
- \ref TypeFactory
- \ref TypeAnalysis
- \ref Variant
- \ref IO
- \ref JPEG_IO
- \ref TIFF_IO
- \ref PNG_IO
*/