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