IDSpeakIPL  v1.8.0
peak_ipl_simple_types.hpp
Go to the documentation of this file.
1 
11 #pragma once
12 
14 
15 #include <string>
16 
20 namespace peak
21 {
22 namespace ipl
23 {
24 
28 enum class ConversionMode
29 {
33 };
34 
38 enum class PixelFormatName
39 {
41 
45 
49 
53 
57 
61 
65 
69 
73 
77 
80 
83 
86 
89 
92 
94 
96 
117 
138 
149 };
150 
154 enum class BayerPattern
155 {
162 };
163 
167 enum class Endianness
168 {
172 };
173 
177 enum class Orientation
178 {
181 };
182 
187 {
195 };
196 
200 struct Size2D
201 {
202  size_t width;
203  size_t height;
204 };
205 
209 PEAK_IPL_NO_DISCARD inline bool operator==(const Size2D& lhs, const Size2D& rhs)
210 {
211  return lhs.height == rhs.height && lhs.width == rhs.width;
212 }
213 
217 PEAK_IPL_NO_DISCARD inline bool operator!=(const Size2D& lhs, const Size2D& rhs)
218 {
219  return !(lhs == rhs);
220 }
224 struct Point2D
225 {
226  size_t x;
227  size_t y;
228 };
229 
233 PEAK_IPL_NO_DISCARD inline bool operator==(const Point2D& lhs, const Point2D& rhs)
234 {
235  return lhs.x == rhs.x && lhs.y == rhs.y;
236 }
237 
241 PEAK_IPL_NO_DISCARD inline bool operator!=(const Point2D& lhs, const Point2D& rhs)
242 {
243  return !(lhs == rhs);
244 }
245 
250 {
251  double x;
252  double y;
253 };
254 
260 PEAK_IPL_NO_DISCARD inline std::string ToString(ConversionMode entry)
261 {
262  switch (entry)
263  {
265  return "Fast";
267  return "HighQuality";
269  return "Classic";
270  }
271 
272  return "INVALID CONVERSION MODE VALUE";
273 }
274 
281 {
282  switch (entry)
283  {
285  return "Invalid";
287  return "BayerGR8";
289  return "BayerGR10";
291  return "BayerGR12";
293  return "BayerRG8";
295  return "BayerRG10";
297  return "BayerRG12";
299  return "BayerGB8";
301  return "BayerGB10";
303  return "BayerGB12";
305  return "BayerBG8";
307  return "BayerBG10";
309  return "BayerBG12";
311  return "Mono8";
313  return "Mono10";
315  return "Mono12";
317  return "RGB8";
319  return "RGB10";
321  return "RGB12";
323  return "BGR8";
325  return "BGR10";
327  return "BGR12";
329  return "RGBa8";
331  return "RGBa10";
333  return "RGBa12";
335  return "BGRa8";
337  return "BGRa10";
339  return "BGRa12";
341  return "BayerBG10p";
343  return "BayerBG12p";
345  return "BayerGB10p";
347  return "BayerGB12p";
349  return "BayerGR10p";
351  return "BayerGR12p";
353  return "BayerRG10p";
355  return "BayerRG12p";
357  return "Mono10p";
359  return "Mono12p";
361  return "RGB10p32";
363  return "BGR10p32";
365  return "BayerRG10g40IDS";
367  return "BayerGB10g40IDS";
369  return "BayerGR10g40IDS";
371  return "BayerBG10g40IDS";
373  return "BayerRG12g24IDS";
375  return "BayerGB12g24IDS";
377  return "BayerGR12g24IDS";
379  return "BayerBG12g24IDS";
381  return "Mono10g40IDS";
383  return "Mono12g24IDS";
384  }
385 
386  return "INVALID PIXEL FORMAT VALUE";
387 }
388 
394 PEAK_IPL_NO_DISCARD inline std::string ToString(Endianness entry)
395 {
396  switch (entry)
397  {
398  case Endianness::Unknown:
399  return "Unknown";
401  return "LittleEndian";
403  return "BigEndian";
404  }
405 
406  return "INVALID ENDIANNESS VALUE";
407 }
408 
414 PEAK_IPL_NO_DISCARD inline std::string ToString(Orientation entry)
415 {
416  switch (entry)
417  {
419  return "Horizontal";
421  return "Vertical";
422  }
423 
424  return "INVALID ORIENTATION VALUE";
425 }
426 
427 } /* namespace ipl */
428 } /* namespace peak */
#define PEAK_IPL_NO_DISCARD
Definition: peak_ipl_backend.h:26
Definition: peak_ipl_backend.h:183
BayerBG 10-Bit packed 40bit grouped pixel format.
BayerGR 8-Bit pixel format.
Definition: peak_ipl_backend.h:66
BGR 10-Bit pixel format.
RGBa 10-Bit pixel format.
Definition: peak_ipl_backend.h:87
BayerGB 12-Bit packed pixel format.
Definition: peak_ipl_backend.h:298
Definition: peak_ipl_backend.h:123
Definition: peak_ipl_backend.h:182
BayerGB 12-Bit pixel format.
size_t height
Height of size.
Definition: peak_ipl_simple_types.hpp:203
Definition: peak_ipl_backend.h:300
Definition: peak_ipl_backend.h:102
PixelFormatName
Enum holding the possible pixel format names.
Definition: peak_ipl_simple_types.hpp:38
Definition: peak_ipl_backend.h:101
BayerGB 10-Bit packed pixel format.
PEAK_IPL_NO_DISCARD std::string ToString(ConversionMode entry)
Convert a ConversionMode to a string.
Definition: peak_ipl_simple_types.hpp:260
Definition: peak_ipl_backend.h:89
BayerGR 12-Bit packed pixel format.
Definition: peak_ipl_backend.h:178
RGB 8-Bit pixel format.
Definition: peak_ipl_backend.h:117
Definition: peak_ipl_backend.h:297
BayerRG 12-Bit packed pixel format.
Definition: peak_ipl_backend.h:190
Mono 10-Bit pixel format.
BayerGR 12-Bit packed 24bit grouped pixel format.
The "peak::ipl" namespace contains the whole image processing library.
Definition: peak_ipl_binning.hpp:22
Big endian (higher bytes first)
BayerGB 10-Bit pixel format.
Definition: peak_ipl_backend.h:75
High-Quality conversion mode.
Definition: peak_ipl_backend.h:77
Definition: peak_ipl_backend.h:155
Definition: peak_ipl_backend.h:135
Definition: peak_ipl_backend.h:181
BayerBG 12-Bit packed pixel format.
size_t x
X position.
Definition: peak_ipl_simple_types.hpp:226
2D size of an image.
Definition: peak_ipl_simple_types.hpp:200
Definition: peak_ipl_backend.h:68
Lanczos interpolation over 8x8 neighborhood.
Definition: peak_ipl_backend.h:191
Definition: peak_ipl_backend.h:111
Definition: peak_ipl_backend.h:94
bool operator!=(const Sharpness::SharpnessROI &lhs, const Sharpness::SharpnessROI &rhs)
Definition: peak_ipl_sharpness.hpp:421
Definition: peak_ipl_backend.h:163
double x
X factor.
Definition: peak_ipl_simple_types.hpp:251
Definition: peak_ipl_backend.h:93
BayerRG 12-Bit pixel format.
Bit-exact bilinear interpolation.
BayerGR 10-Bit packed pixel format.
ConversionMode
Enum holding the possible conversion modes.
Definition: peak_ipl_simple_types.hpp:28
BayerBG 12-Bit packed 24bit grouped pixel format.
RGB 12-Bit pixel format.
Endianness
Enum holding the possible endianness (the byte order).
Definition: peak_ipl_simple_types.hpp:167
Definition: peak_ipl_backend.h:105
Mono 10-Bit packed pixel format.
Definition: peak_ipl_backend.h:113
2D position in an image.
Definition: peak_ipl_simple_types.hpp:224
BayerBG 10-Bit packed pixel format.
Orientation
Enum holding the possible orientation.
Definition: peak_ipl_simple_types.hpp:177
Definition: peak_ipl_backend.h:119
BayerBG 10-Bit packed pixel format.
Definition: peak_ipl_backend.h:171
Definition: peak_ipl_backend.h:120
BayerRG 12-Bit packed 24bit grouped pixel format.
Mono 10-Bit packed pixel format.
Definition: peak_ipl_backend.h:79
Definition: peak_ipl_backend.h:299
Definition: peak_ipl_backend.h:167
Definition: peak_ipl_backend.h:296
Definition: peak_ipl_backend.h:86
Definition: peak_ipl_backend.h:151
Definition: peak_ipl_backend.h:200
BayerGR 10-Bit pixel format.
BayerGB 10-Bit packed 40bit grouped pixel format.
Definition: peak_ipl_backend.h:159
Mono 8-Bit pixel format.
Mono 12-Bit pixel format.
Fast conversion mode.
Definition: peak_ipl_backend.h:83
double y
Y factor.
Definition: peak_ipl_simple_types.hpp:252
Scale Factors of an image.
Definition: peak_ipl_simple_types.hpp:249
Definition: peak_ipl_backend.h:147
Definition: peak_ipl_backend.h:95
Definition: peak_ipl_backend.h:85
BayerBG 10-Bit packed pixel format.
Definition: peak_ipl_backend.h:103
Definition: peak_ipl_backend.h:192
Definition: peak_ipl_backend.h:91
Definition: peak_ipl_backend.h:295
BayerRG 10-Bit packed 40bit grouped pixel format.
Mono 10-Bit packed 40bit grouped pixel format.
Definition: peak_ipl_backend.h:82
BayerGR 10-Bit packed 40bit grouped pixel format.
BayerRG 10-Bit packed pixel format.
Definition: peak_ipl_backend.h:122
Definition: peak_ipl_backend.h:199
BayerBG 12-Bit pixel format.
Definition: peak_ipl_backend.h:139
Definition: peak_ipl_backend.h:81
BayerRG 8-Bit pixel format.
Bit-exact bicubic interpolation.
Mono 12-Bit packed 24bit grouped pixel format.
Definition: peak_ipl_backend.h:106
Definition: peak_ipl_backend.h:301
InterpolationAlgorithm
Enum holding the possible interpolation algorithm.
Definition: peak_ipl_simple_types.hpp:186
bool operator==(const Sharpness::SharpnessROI &lhs, const Sharpness::SharpnessROI &rhs)
Definition: peak_ipl_sharpness.hpp:415
BayerGB 12-Bit packed 24bit grouped pixel format.
Definition: peak_ipl_backend.h:128
Definition: peak_ipl_backend.h:109
BayerRG 10-Bit pixel format.
Definition: peak_ipl_backend.h:143
BayerBG 10-Bit pixel format.
Little endian (lower bytes first)
Definition: peak_ipl_backend.h:99
nearest neighbor interpolation
Definition: peak_ipl_backend.h:179
Definition: peak_ipl_backend.h:125
BGR 12-Bit pixel format.
size_t width
Width of size.
Definition: peak_ipl_simple_types.hpp:202
RGBa 8-Bit pixel format.
BayerPattern
Enum holding the possible bayer patterns.
Definition: peak_ipl_simple_types.hpp:154
Definition: peak_ipl_backend.h:114
Definition: peak_ipl_backend.h:97
Definition: peak_ipl_backend.h:130
RGBa 12-Bit pixel format.
Definition: peak_ipl_backend.h:107
BGRa 10-Bit pixel format.
Horizontal orientation.
Definition: peak_ipl_backend.h:67
RGB 10-Bit pixel format.
Definition: peak_ipl_backend.h:78
Classic conversion mode.
Definition: peak_ipl_backend.h:126
BayerBG 8-Bit pixel format.
Definition: peak_ipl_backend.h:110
BayerGR 12-Bit pixel format.
Definition: peak_ipl_backend.h:98
Definition: peak_ipl_backend.h:180
resampling using pixel area relation
Definition: peak_ipl_backend.h:116
BGR 8-Bit pixel format.
Vertical orientation.
BayerGB 8-Bit pixel format.
size_t y
Y position.
Definition: peak_ipl_simple_types.hpp:227
BGRa 8-Bit pixel format.
BGRa 12-Bit pixel format.
Definition: peak_ipl_backend.h:90