CVB++ 15.0
Loading...
Searching...
No Matches
spectral.hpp
1#pragma once
2
3#include "../_cexports/c_spectral.h"
4
5#include "../global.hpp"
6
7namespace Cvb
8{
9
10 CVB_BEGIN_INLINE_NS
11
13
99 namespace Spectral
100 {
101
102 class MetaData;
105
106 class Cube;
109
110 class WrappedCube;
113
114 class LinearAccessData;
115
116 class Interpolator;
119
120 class CubeRange;
121
123 enum class FieldID
124 {
126 Interleave = CExports::CVSFI_Interleave,
128 Samples = CExports::CVSFI_Samples,
130 Lines = CExports::CVSFI_Lines,
132 Bands = CExports::CVSFI_Bands,
145 DataType = CExports::CVSFI_DataType,
149 ByteOrder = CExports::CVSFI_ByteOrder,
152 FileType = CExports::CVSFI_FileType,
155 HeaderOffset = CExports::CVSFI_HeaderOffset,
157 Wavelength = CExports::CVSFI_Wavelength,
175 WavelengthUnit = CExports::CVSFI_WavelengthUnit,
178 Fwhm = CExports::CVSFI_Fwhm
179 };
180
182 enum class FieldType
183 {
185 Invalid = CExports::CVSFT_Invalid,
187 String = CExports::CVSFT_String,
189 Float = CExports::CVSFT_Float,
191 Integer = CExports::CVSFT_Integer,
193 StringArray = CExports::CVSFT_StringArray,
195 FloatArray = CExports::CVSFT_FloatArray,
197 IntegerArray = CExports::CVSFT_IntegerArray
198 };
199
216 enum class CubeEncoding
217 {
220 BandInterleavedByLine = CExports::CVSVP_BandInterleavedByLine,
223 BandSequential = CExports::CVSVP_BandSequential,
226 BandInterleavedByPixel = CExports::CVSVP_BandInterleavedByPixel
227 };
228
230 enum class CubeType
231 {
233 ContinuousCube = CExports::CVSCT_ContinuousCube,
235 LinearNonOwningCube = CExports::CVSCT_LinearNonOwningCube,
237 MappedCube = CExports::CVSCT_MappedCube,
239 StackedCube = CExports::CVSCT_StackedCube
240 };
241
244 {
247 AverageReferences1 = CExports::CVSNM_AverageReferences1
248 };
249
251 enum class StdIlluminant
252 {
254 UNDEFINED = CExports::CVSSI_UNDEFINED,
256 E = CExports::CVSSI_E,
258 A = CExports::CVSSI_A,
260 D50 = CExports::CVSSI_D50,
262 D65 = CExports::CVSSI_D65
263 };
264
266 enum class StdObserver
267 {
269 UNDEFINED = CExports::CVSSO_UNDEFINED,
271 CIE2006_2deg = CExports::CVSSO_CIE2006_2deg,
273 CIE2006_10deg = CExports::CVSSO_CIE2006_10deg,
275 CIE1964_10deg = CExports::CVSSO_CIE1964_10deg,
277 CIE1931_2deg = CExports::CVSSO_CIE1931_2deg
278 };
279
282 {
285 };
286
288 enum class PixelOverflow
289 {
294 };
295
296 } // namespace Spectral
297
298 CVB_END_INLINE_NS
299
300} // namespace Cvb
301
Spectral Cube object.
Definition cube.hpp:59
3D rectangle in the samples, lines and bands domain.
Definition cube_range.hpp:22
Spectral Interpolator object.
Definition interpolator.hpp:23
Linear access properties.
Definition linear_access_data.hpp:20
Spectral MetaData object.
Definition meta_data.hpp:31
Spectral Wrapped cube objects are linear non-owning cubes.
Definition wrapped_cube.hpp:28
Namespace for the Spectral package.
Definition arithmetic.hpp:14
FieldID
FieldID enum class to access fields in the MetaData object.
Definition spectral.hpp:124
@ Bands
The number of bands.
Definition spectral.hpp:132
@ FileType
Definition spectral.hpp:152
@ WavelengthUnit
Definition spectral.hpp:175
@ ByteOrder
Definition spectral.hpp:149
@ HeaderOffset
Definition spectral.hpp:155
@ Lines
The number of lines.
Definition spectral.hpp:130
@ DataType
Definition spectral.hpp:145
@ Wavelength
Array of wavelengths with the unit given in FieldID::WavelengthUnit.
Definition spectral.hpp:157
@ Interleave
Defines the way the spectral data of the buffer is ordered (CubeEncoding)
Definition spectral.hpp:126
@ Samples
The number of samples.
Definition spectral.hpp:128
@ Fwhm
Definition spectral.hpp:178
std::shared_ptr< MetaData > MetaDataPtr
Convenience shared pointer for MetaData.
Definition spectral.hpp:104
PixelOverflow
Defines how arithmetic overflows and underflows are handled.
Definition spectral.hpp:289
@ Unhandled
No operation is done on the resulting pixel values.
Definition spectral.hpp:291
@ Truncate
Resulting pixel values are truncated at the data type's min and max values.
Definition spectral.hpp:293
NormalizationMethod
Defines the method used for normalizing the spectral cube with a white and a black reference.
Definition spectral.hpp:244
@ AverageReferences1
Definition spectral.hpp:247
StdIlluminant
Defines Standard Illumination.
Definition spectral.hpp:252
@ UNDEFINED
Undefined Standard Illuminant.
Definition spectral.hpp:254
@ E
Equal power Spectrum.
Definition spectral.hpp:256
@ D65
Illuminant D65.
Definition spectral.hpp:262
@ D50
Illuminant D50.
Definition spectral.hpp:260
@ A
Illuminant A.
Definition spectral.hpp:258
CubeType
Defines the type of the cube.
Definition spectral.hpp:231
@ ContinuousCube
Linear Cube with owning buffer.
Definition spectral.hpp:233
@ LinearNonOwningCube
Linear Cube without owning buffer.
Definition spectral.hpp:235
@ MappedCube
Mapped Cube holds a reference of a continuous Cube.
Definition spectral.hpp:237
@ StackedCube
Stacked Cube with potentially non-linear buffer.
Definition spectral.hpp:239
std::shared_ptr< Interpolator > InterpolatorPtr
Convenience shared pointer for Interpolator.
Definition spectral.hpp:118
InterpolationMethod
Defines the interpolation method.
Definition spectral.hpp:282
@ Linear
linear interpolation, at the border the last value is used
Definition spectral.hpp:284
FieldType
Data type of a field.
Definition spectral.hpp:183
@ Float
Field contains floating point value.
Definition spectral.hpp:189
@ String
Field contains string value.
Definition spectral.hpp:187
@ Invalid
Invalid field when the field has not been defined yet.
Definition spectral.hpp:185
@ StringArray
Field contains string array value.
Definition spectral.hpp:193
@ Integer
Field contains integer value.
Definition spectral.hpp:191
@ FloatArray
Field contains floating point array value.
Definition spectral.hpp:195
@ IntegerArray
Field contains integer array value.
Definition spectral.hpp:197
std::shared_ptr< WrappedCube > WrappedCubePtr
Convenience shared pointer for WrappedCube.
Definition spectral.hpp:112
StdObserver
Defines Standard Observer.
Definition spectral.hpp:267
@ CIE1964_10deg
1964 Observer with 10 deg
Definition spectral.hpp:275
@ CIE2006_2deg
2006 Observer with 2 deg
Definition spectral.hpp:271
@ CIE2006_10deg
2006 Observer with 10 deg
Definition spectral.hpp:273
@ CIE1931_2deg
1931 Observer with 2 deg
Definition spectral.hpp:277
CubeEncoding
View Perspective: Defines how the mapping between a typical x-y image and samples-lines-bands is done...
Definition spectral.hpp:217
@ BandSequential
Definition spectral.hpp:223
@ BandInterleavedByPixel
Definition spectral.hpp:226
@ BandInterleavedByLine
Definition spectral.hpp:220
std::shared_ptr< Cube > CubePtr
Convenience shared pointer for Cube.
Definition spectral.hpp:108
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17