44
#ifndef OPENCV_CORE_TRAITS_HPP
45
#define OPENCV_CORE_TRAITS_HPP
47
#include "opencv2/core/cvdef.h"
115
#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED
116
typedef
_Tp value_type;
117
typedef
value_type work_type;
118
typedef
value_type channel_type;
119
typedef
value_type vec_type;
120
enum
{ generic_type = 1,
124
type = CV_MAKETYPE(depth, channels)
132
typedef
bool
value_type;
133
typedef
int
work_type;
134
typedef
value_type channel_type;
135
typedef
value_type vec_type;
136
enum
{ generic_type = 0,
140
type = CV_MAKETYPE(depth, channels)
147
typedef
uchar value_type;
148
typedef
int
work_type;
149
typedef
value_type channel_type;
150
typedef
value_type vec_type;
151
enum
{ generic_type = 0,
155
type = CV_MAKETYPE(depth, channels)
162
typedef
schar value_type;
163
typedef
int
work_type;
164
typedef
value_type channel_type;
165
typedef
value_type vec_type;
166
enum
{ generic_type = 0,
170
type = CV_MAKETYPE(depth, channels)
177
typedef
schar value_type;
178
typedef
int
work_type;
179
typedef
value_type channel_type;
180
typedef
value_type vec_type;
181
enum
{ generic_type = 0,
185
type = CV_MAKETYPE(depth, channels)
192
typedef
ushort value_type;
193
typedef
int
work_type;
194
typedef
value_type channel_type;
195
typedef
value_type vec_type;
196
enum
{ generic_type = 0,
200
type = CV_MAKETYPE(depth, channels)
207
typedef
short
value_type;
208
typedef
int
work_type;
209
typedef
value_type channel_type;
210
typedef
value_type vec_type;
211
enum
{ generic_type = 0,
215
type = CV_MAKETYPE(depth, channels)
222
typedef
int
value_type;
223
typedef
value_type work_type;
224
typedef
value_type channel_type;
225
typedef
value_type vec_type;
226
enum
{ generic_type = 0,
230
type = CV_MAKETYPE(depth, channels)
237
typedef
float
value_type;
238
typedef
value_type work_type;
239
typedef
value_type channel_type;
240
typedef
value_type vec_type;
241
enum
{ generic_type = 0,
245
type = CV_MAKETYPE(depth, channels)
252
typedef
double
value_type;
253
typedef
value_type work_type;
254
typedef
value_type channel_type;
255
typedef
value_type vec_type;
256
enum
{ generic_type = 0,
260
type = CV_MAKETYPE(depth, channels)
267
typedef
float16_t value_type;
268
typedef
float
work_type;
269
typedef
value_type channel_type;
270
typedef
value_type vec_type;
271
enum
{ generic_type = 0,
275
type = CV_MAKETYPE(depth, channels)
295
#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED
297
template<
int
_depth>
class
TypeDepth
299
#ifdef OPENCV_TRAITS_ENABLE_LEGACY_DEFAULTS
300
enum
{ depth = CV_USRTYPE1 };
301
typedef
void
value_type;
305
template<>
class
TypeDepth<CV_8U>
307
enum
{ depth = CV_8U };
308
typedef
uchar value_type;
311
template<>
class
TypeDepth<CV_8S>
313
enum
{ depth = CV_8S };
314
typedef
schar value_type;
317
template<>
class
TypeDepth<CV_16U>
319
enum
{ depth = CV_16U };
320
typedef
ushort value_type;
323
template<>
class
TypeDepth<CV_16S>
325
enum
{ depth = CV_16S };
326
typedef
short
value_type;
329
template<>
class
TypeDepth<CV_32S>
331
enum
{ depth = CV_32S };
332
typedef
int
value_type;
335
template<>
class
TypeDepth<CV_32F>
337
enum
{ depth = CV_32F };
338
typedef
float
value_type;
341
template<>
class
TypeDepth<CV_64F>
343
enum
{ depth = CV_64F };
344
typedef
double
value_type;
347
template<>
class
TypeDepth<CV_16F>
349
enum
{ depth = CV_16F };
350
typedef
float16_t value_type;
360
#define CV_CREATE_MEMBER_CHECK(X) \
361
template<typename T> class CheckMember_##X { \
362
struct Fallback { int X; }; \
363
struct Derived : T, Fallback { }; \
364
template<typename U, U> struct Check; \
365
typedef char CV_NO[1]; \
366
typedef char CV_YES[2]; \
367
template<typename U> static CV_NO & func(Check<int Fallback::*, &U::X> *); \
368
template<typename U> static CV_YES & func(...); \
370
typedef CheckMember_##X type; \
371
enum { value = sizeof(func<Derived>(0)) == sizeof(CV_YES) }; \
374CV_CREATE_MEMBER_CHECK(fmt)
375CV_CREATE_MEMBER_CHECK(type)
389
template<
typename
T,
bool
available =
internal::CheckMember_type< DataType<T> >::value >
394{
enum
{ value = -1 }; };
401
template<
typename
T,
bool
available =
internal::CheckMember_fmt< DataType<T> >::value >
406{
enum
{ fmt = 0 }; };
A helper class for cv::DataType
Definition:
traits.hpp:285
Template "trait" class for OpenCV primitive data types.
Definition:
traits.hpp:113
"black box" representation of the file storage associated with a file on disk.
Definition:
aruco.hpp:75
Definition:
traits.hpp:382
Definition:
traits.hpp:402
Definition:
traits.hpp:390
Definition:
traits.hpp:386