20#include <unordered_map>
29#define PEAK_COMMON_CREATE_DEPRECATED_HELPER(SUFFIX, CONST) \
30 constexpr uint64_t DeprecatedHelperGet##SUFFIX##CEnumValue() \
32 return CPixelFormatCast(CONST); \
43 return static_cast<uint32_t
>(
static_cast<std::underlying_type_t<peak_common_pixel_format>
>(pixelFormat));
46PEAK_COMMON_BEGIN_DISABLE_DEPRECATED_WARNINGS
47PEAK_COMMON_CREATE_DEPRECATED_HELPER(Mono32FIDS, PEAK_COMMON_PIXEL_FORMAT_MONO_32F_IDS)
48PEAK_COMMON_CREATE_DEPRECATED_HELPER(RGB32FIDS, PEAK_COMMON_PIXEL_FORMAT_RGB_32F_IDS)
49PEAK_COMMON_END_DISABLE_DEPRECATED_WARNINGS
65 BayerGR8 = PEAK_COMMON_PIXEL_FORMAT_BAYER_GR_8,
69 BayerRG8 = PEAK_COMMON_PIXEL_FORMAT_BAYER_RG_8,
73 BayerGB8 = PEAK_COMMON_PIXEL_FORMAT_BAYER_GB_8,
77 BayerBG8 = PEAK_COMMON_PIXEL_FORMAT_BAYER_BG_8,
81 Mono8 = PEAK_COMMON_PIXEL_FORMAT_MONO_8,
82 Mono10 = PEAK_COMMON_PIXEL_FORMAT_MONO_10,
83 Mono12 = PEAK_COMMON_PIXEL_FORMAT_MONO_12,
84 Mono16 = PEAK_COMMON_PIXEL_FORMAT_MONO_16,
85 Mono32f = PEAK_COMMON_PIXEL_FORMAT_MONO_32F,
101 RGB8 = PEAK_COMMON_PIXEL_FORMAT_RGB_8,
102 RGB10 = PEAK_COMMON_PIXEL_FORMAT_RGB_10,
103 RGB12 = PEAK_COMMON_PIXEL_FORMAT_RGB_12,
104 RGB32f = PEAK_COMMON_PIXEL_FORMAT_RGB_32F,
106 BGR8 = PEAK_COMMON_PIXEL_FORMAT_BGR_8,
107 BGR10 = PEAK_COMMON_PIXEL_FORMAT_BGR_10,
108 BGR12 = PEAK_COMMON_PIXEL_FORMAT_BGR_12,
110 RGBa8 = PEAK_COMMON_PIXEL_FORMAT_RGBA_8,
111 RGBa10 = PEAK_COMMON_PIXEL_FORMAT_RGBA_10,
112 RGBa12 = PEAK_COMMON_PIXEL_FORMAT_RGBA_12,
114 BGRa8 = PEAK_COMMON_PIXEL_FORMAT_BGRA_8,
115 BGRa10 = PEAK_COMMON_PIXEL_FORMAT_BGRA_10,
116 BGRa12 = PEAK_COMMON_PIXEL_FORMAT_BGRA_12,
130 Mono10p = PEAK_COMMON_PIXEL_FORMAT_MONO_10_PACKED,
131 Mono12p = PEAK_COMMON_PIXEL_FORMAT_MONO_12_PACKED,
133 RGB10p32 = PEAK_COMMON_PIXEL_FORMAT_RGB_10_PACKED_32,
134 BGR10p32 = PEAK_COMMON_PIXEL_FORMAT_BGR_10_PACKED_32,
149 Mono32fIDS
PEAK_COMMON_DEPRECATED_ENUM_MSG(
"This value will be removed in a future Version. Use Mono32f instead.") = detail::DeprecatedHelperGetMono32FIDSCEnumValue(),
150 RGB32fIDS
PEAK_COMMON_DEPRECATED_ENUM_MSG(
"This value will be removed in a future Version. Use RGB32fIDS instead.") = detail::DeprecatedHelperGetRGB32FIDSCEnumValue(),
220 return static_cast<PixelFormat>(CPixelFormatCast(pixelFormat));
264 template <
typename T =
size_t>
274 template <
typename T =
size_t>
299 PEAK_COMMON_NO_DISCARD std::string
GetName()
const;
307 PEAK_COMMON_NO_DISCARD std::vector<Channel>
GetChannels()
const;
382 PEAK_COMMON_NO_DISCARD
bool IsPacked()
const;
431 PEAK_COMMON_NO_DISCARD
bool IsFloat()
const;
448 : m_pixelFormat{ pixelFormat }
459 const auto it = std::find(channels.cbegin(), channels.cend(), channel);
460 if (it == channels.end())
465 return static_cast<size_t>(std::distance(channels.begin(), it));
481 return std::find(channels.cbegin(), channels.cend(), channel) != channels.cend();
486 return m_pixelFormat;
Thrown when a function receives an invalid parameter.
Definition peak_common_exceptions.hpp:58
peak_common_pixel_format
Enum listing all supported pixel formats and their internal IDs.
Definition peak_common_pixel_format.h:43
detail::SizeT< uint32_t > Size
Size with unsigned 32-bit integer dimensions.
Definition peak_common_size.hpp:273
Channel
Represents the various data channels in image or spatial data formats.
Definition peak_common_channel.hpp:33
PixelFormat
Enum listing all supported pixel formats and their internal IDs.
Definition peak_common_pixel_format.hpp:64
@ Intensity
Definition peak_common_channel.hpp:34
@ PEAK_COMMON_DEPRECATED_ENUM_MSG
Mono 32-Bit float format (IDS)
Definition peak_common_pixel_format.hpp:149
@ BayerGR12p_I_A_B
BayerGR 12-Bit packed format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:185
@ BayerGB12_AB
BayerGB 12-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:204
@ BayerRG12g24IDS
BayerRG 12-Bit grouped 24-bit (IDS)
Definition peak_common_pixel_format.hpp:141
@ BayerBG12p_I_A_B
BayerBG 12-Bit packed format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:184
@ Coord3D_C8
3D coordinate C 8-Bit format
Definition peak_common_pixel_format.hpp:90
@ Mono10g40IDS_I_A_B
Mono 10-Bit grouped 40-bit (IDS) line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:152
@ RGBa10
RGBA 10-Bit pixel format.
Definition peak_common_pixel_format.hpp:111
@ RGB8
RGB 8-Bit pixel format.
Definition peak_common_pixel_format.hpp:101
@ Mono10_I_AB_CD
Mono 10-Bit pixel format pixel Interleaved Components A, B, C, D.
Definition peak_common_pixel_format.hpp:188
@ Mono12p
Mono 12-Bit packed format.
Definition peak_common_pixel_format.hpp:131
@ Mono12
Mono 12-Bit pixel format.
Definition peak_common_pixel_format.hpp:83
@ BGR10p32
BGR 10-Bit packed 32-bit format.
Definition peak_common_pixel_format.hpp:134
@ BayerGR12_AB
BayerGR 12-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:203
@ BayerGB10
BayerGB 10-Bit pixel format.
Definition peak_common_pixel_format.hpp:74
@ BayerBG8_I_A_B
BayerBG 8-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:164
@ BayerGB12p_I_A_B
BayerGB 12-Bit packed format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:186
@ BayerRG12p
BayerRG 12-Bit packed format.
Definition peak_common_pixel_format.hpp:128
@ BayerBG10
BayerBG 10-Bit pixel format.
Definition peak_common_pixel_format.hpp:78
@ BayerGR10_I_A_B
BayerGR 10-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:170
@ RGBa8
RGBA 8-Bit pixel format.
Definition peak_common_pixel_format.hpp:110
@ Mono10g40IDS
Mono 10-Bit grouped 40-bit (IDS)
Definition peak_common_pixel_format.hpp:146
@ BayerRG8_I_A_B
BayerRG 8-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:163
@ BayerGB10g40IDS_I_A_B
BayerGB 10-Bit grouped 40-bit (IDS) line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:156
@ BayerGR10g40IDS
BayerGR 10-Bit grouped 40-bit (IDS)
Definition peak_common_pixel_format.hpp:138
@ BayerGR12_I_A_B
BayerGR 12-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:175
@ BayerBG8_AB
BayerBG 8-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:207
@ BayerBG10p
BayerBG 10-Bit packed format.
Definition peak_common_pixel_format.hpp:118
@ BayerRG10p_I_A_B
BayerRG 10-Bit packed format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:178
@ Mono10_ABCD
Mono 10-Bit pixel format Components A, B, C, D.
Definition peak_common_pixel_format.hpp:211
@ RGBa12
RGBA 12-Bit pixel format.
Definition peak_common_pixel_format.hpp:112
@ BayerGB10p_I_A_B
BayerGB 10-Bit packed format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:181
@ BayerGB12p
BayerGB 12-Bit packed format.
Definition peak_common_pixel_format.hpp:122
@ BGRa12
BGRA 12-Bit pixel format.
Definition peak_common_pixel_format.hpp:116
@ BayerGR12
BayerGR 12-Bit pixel format.
Definition peak_common_pixel_format.hpp:67
@ Mono10p_I_A_B
Mono 10-Bit packed format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:177
@ BayerRG10p
BayerRG 10-Bit packed format.
Definition peak_common_pixel_format.hpp:127
@ BayerGR8_I_A_B
BayerGR 8-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:165
@ BayerGR10p_I_A_B
BayerGR 10-Bit packed format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:180
@ BayerRG12
BayerRG 12-Bit pixel format.
Definition peak_common_pixel_format.hpp:71
@ BayerBG10g40IDS_I_A_B
BayerBG 10-Bit grouped 40-bit (IDS) line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:154
@ BayerGR12p
BayerGR 12-Bit packed format.
Definition peak_common_pixel_format.hpp:125
@ BayerGR8
BayerGR 8-Bit pixel format.
Definition peak_common_pixel_format.hpp:65
@ BayerBG12p
BayerBG 12-Bit packed format.
Definition peak_common_pixel_format.hpp:119
@ BayerBG8
BayerBG 8-Bit pixel format.
Definition peak_common_pixel_format.hpp:77
@ BayerBG12_AB
BayerBG 12-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:202
@ Mono32f
Mono 32-Bit float pixel format.
Definition peak_common_pixel_format.hpp:85
@ Confidence16
Confidence 16-Bit format.
Definition peak_common_pixel_format.hpp:88
@ BayerGB12_I_A_B
BayerGB 12-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:176
@ RGB32f
RGB 32-Bit float pixel format.
Definition peak_common_pixel_format.hpp:104
@ Mono12g24IDS
Mono 12-Bit grouped 24-bit (IDS)
Definition peak_common_pixel_format.hpp:147
@ BayerRG10
BayerRG 10-Bit pixel format.
Definition peak_common_pixel_format.hpp:70
@ BayerGB12
BayerGB 12-Bit pixel format.
Definition peak_common_pixel_format.hpp:75
@ Mono8_I_AB_CD
Mono 8-Bit pixel format pixel Interleaved Components A, B, C, D.
Definition peak_common_pixel_format.hpp:187
@ BayerRG8
BayerRG 8-Bit pixel format.
Definition peak_common_pixel_format.hpp:69
@ BayerGR10p
BayerGR 10-Bit packed format.
Definition peak_common_pixel_format.hpp:124
@ BayerBG12_I_A_B
BayerBG 12-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:174
@ BayerBG10_AB
BayerBG 10-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:197
@ YUV422_8_UYVY
UYVY 4:2:2 8-Bit format.
Definition peak_common_pixel_format.hpp:99
@ YUV420_8_YY_VU_SemiplanarIDS
YUV4:2:0 8-Bit YY/VU semiplanar (IDS)
Definition peak_common_pixel_format.hpp:97
@ BayerRG12g24IDS_I_A_B
BayerRG 10-Bit grouped 40-bit (IDS) line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:158
@ Mono8_ABCD
Mono 8-Bit pixel format Components A, B, C, D.
Definition peak_common_pixel_format.hpp:210
@ Mono12p_I_AB_CD
Mono 12-Bit packed format pixel Interleaved Components A, B, C, D.
Definition peak_common_pixel_format.hpp:191
@ BayerGB8
BayerGB 8-Bit pixel format.
Definition peak_common_pixel_format.hpp:73
@ Mono12_I_AB_CD
Mono 12-Bit pixel format pixel Interleaved Components A, B, C, D.
Definition peak_common_pixel_format.hpp:189
@ Mono10_I_A_B
Mono 10-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:167
@ BGR12
BGR 12-Bit pixel format.
Definition peak_common_pixel_format.hpp:108
@ Mono8_AB
Mono 8-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:205
@ Confidence8
Confidence 8-Bit format.
Definition peak_common_pixel_format.hpp:87
@ Mono10g40IDS_I_AB_CD
Mono 10-Bit grouped 40-bit (IDS) pixel Interleaved Components A, B, C, D.
Definition peak_common_pixel_format.hpp:192
@ BayerRG10g40IDS_I_A_B
BayerRG 10-Bit grouped 40-bit (IDS) line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:153
@ BayerGR12g24IDS_I_A_B
BayerGR 10-Bit grouped 40-bit (IDS) line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:160
@ RGB10
RGB 10-Bit pixel format.
Definition peak_common_pixel_format.hpp:102
@ BayerGR12g24IDS
BayerGR 12-Bit grouped 24-bit (IDS)
Definition peak_common_pixel_format.hpp:143
@ YUV420_8_YY_UV_SemiplanarIDS
YUV4:2:0 8-Bit YY/UV semiplanar (IDS)
Definition peak_common_pixel_format.hpp:96
@ BayerGR10
BayerGR 10-Bit pixel format.
Definition peak_common_pixel_format.hpp:66
@ Coord3D_C32f
3D coordinate C 32-Bit float format
Definition peak_common_pixel_format.hpp:92
@ Mono16
Mono 16-Bit pixel format.
Definition peak_common_pixel_format.hpp:84
@ Mono10
Mono 10-Bit pixel format.
Definition peak_common_pixel_format.hpp:82
@ BayerRG12_AB
BayerRG 12-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:201
@ Mono10p_I_AB_CD
Mono 10-Bit packed format pixel Interleaved Components A, B, C, D.
Definition peak_common_pixel_format.hpp:190
@ Mono12g24IDS_I_A_B
Mono 12-Bit grouped 24-bit (IDS) line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:157
@ BayerRG10_AB
BayerRG 10-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:196
@ Mono8
Mono 8-Bit pixel format.
Definition peak_common_pixel_format.hpp:81
@ Mono12_I_A_B
Mono 12-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:172
@ BGR10
BGR 10-Bit pixel format.
Definition peak_common_pixel_format.hpp:107
@ BayerBG10_I_A_B
BayerBG 10-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:169
@ Mono12p_I_A_B
Mono 12-Bit packed format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:182
@ BayerGB12g24IDS_I_A_B
BayerGB 10-Bit grouped 40-bit (IDS) line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:161
@ Coord3D_ABC32f
3D coordinates A, B, C 32-Bit float format
Definition peak_common_pixel_format.hpp:94
@ RGB12
RGB 12-Bit pixel format.
Definition peak_common_pixel_format.hpp:103
@ BayerGB10_I_A_B
BayerGB 10-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:171
@ BayerBG10p_I_A_B
BayerBG 10-Bit packed format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:179
@ BayerGR10_AB
BayerGR 10-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:198
@ BayerBG12
BayerBG 12-Bit pixel format.
Definition peak_common_pixel_format.hpp:79
@ BayerBG10g40IDS
BayerBG 10-Bit grouped 40-bit (IDS)
Definition peak_common_pixel_format.hpp:139
@ BayerGR8_AB
BayerGR 8-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:208
@ BayerGB10p
BayerGB 10-Bit packed format.
Definition peak_common_pixel_format.hpp:121
@ Mono12g24IDS_I_AB_CD
Mono 12-Bit grouped 24-bit (IDS) pixel Interleaved Components A, B, C, D.
Definition peak_common_pixel_format.hpp:193
@ BayerRG8_AB
BayerRG 8-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:206
@ BGRa8
BGRA 8-Bit pixel format.
Definition peak_common_pixel_format.hpp:114
@ BayerGB8_AB
BayerGB 8-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:209
@ BayerGB10_AB
BayerGB 10-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:199
@ BGRa10
BGRA 10-Bit pixel format.
Definition peak_common_pixel_format.hpp:115
@ Coord3D_C16
3D coordinate C 16-Bit format
Definition peak_common_pixel_format.hpp:91
@ BayerRG12_I_A_B
BayerRG 12-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:173
@ BGR8
BGR 8-Bit pixel format.
Definition peak_common_pixel_format.hpp:106
@ BayerBG12g24IDS_I_A_B
BayerBG 10-Bit grouped 40-bit (IDS) line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:159
@ BayerBG12g24IDS
BayerBG 12-Bit grouped 24-bit (IDS)
Definition peak_common_pixel_format.hpp:144
@ Mono8_I_A_B
Mono 8-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:162
@ Mono12_AB
Mono 12-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:200
@ Mono10_AB
Mono 10-Bit pixel format Components A, B.
Definition peak_common_pixel_format.hpp:195
@ BayerGR10g40IDS_I_A_B
BayerGR 10-Bit grouped 40-bit (IDS) line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:155
@ Mono10p
Mono 10-Bit packed format.
Definition peak_common_pixel_format.hpp:130
@ BayerRG10g40IDS
BayerRG 10-Bit grouped 40-bit (IDS)
Definition peak_common_pixel_format.hpp:136
@ BayerGB8_I_A_B
BayerGB 8-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:166
@ BayerRG12p_I_A_B
BayerRG 12-Bit packed format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:183
@ Mono12_ABCD
Mono 12-Bit pixel format Components A, B, C, D.
Definition peak_common_pixel_format.hpp:212
@ BayerRG10_I_A_B
BayerRG 10-Bit pixel format line Interleaved Components A, B.
Definition peak_common_pixel_format.hpp:168
@ RGB10p32
RGB 10-Bit packed 32-bit format.
Definition peak_common_pixel_format.hpp:133
@ BayerGB10g40IDS
BayerGB 10-Bit grouped 40-bit (IDS)
Definition peak_common_pixel_format.hpp:137
@ BayerGB12g24IDS
BayerGB 12-Bit grouped 24-bit (IDS)
Definition peak_common_pixel_format.hpp:142
Namespace for internal implementation details and low-level types.
Definition peak_common_math.hpp:24
Root namespace for common types and interfaces shared across multiple libraries.
Definition peak_common_math.hpp:22