OpenPose  1.0.0rc2
OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
datum.hpp
Go to the documentation of this file.
1 #ifndef OPENPOSE_CORE_DATUM_HPP
2 #define OPENPOSE_CORE_DATUM_HPP
3 
4 #include <opencv2/core/core.hpp> // cv::Mat
6 
7 namespace op
8 {
15  struct OP_API Datum
16  {
17  // ---------------------------------------- ID parameters ---------------------------------------- //
18  unsigned long long id;
24 
25  // ------------------------------ Input image and rendered version parameters ------------------------------ //
30  cv::Mat cvInputData;
31 
41  std::vector<Array<float>> inputNetData;
42 
50 
57  cv::Mat cvOutputData;
58 
59  // ------------------------------ Resulting Array<float> data parameters ------------------------------ //
66 
75 
85 
99 
109  std::vector<std::vector<std::array<float,3>>> poseCandidates;
110 
116  std::vector<Rectangle<float>> faceRectangles;
117 
124 
131 
137  std::vector<std::array<Rectangle<float>, 2>> handRectangles;
138 
145  std::array<Array<float>, 2> handKeypoints;
146 
152  std::array<Array<float>, 2> handHeatMaps;
153 
154  // ---------------------------------------- 3-D Reconstruction parameters ---------------------------------------- //
160 
167 
174  std::array<Array<float>, 2> handKeypoints3D;
175 
179  cv::Mat cameraMatrix;
180 
181  // ---------------------------------------- Other (internal) parameters ---------------------------------------- //
185  std::vector<double> scaleInputToNetInputs;
186 
191  std::vector<Point<int>> netInputSizes;
192 
197 
202 
207 
212  std::pair<int, std::string> elementRendered;
213 
214 
215 
216 
217 
218  // ---------------------------------------- Functions ---------------------------------------- //
224  explicit Datum();
225 
234  Datum(const Datum& datum);
235 
242  Datum& operator=(const Datum& datum);
243 
249  Datum(Datum&& datum);
250 
257  Datum& operator=(Datum&& datum);
258 
263  virtual ~Datum();
264 
272  Datum clone() const;
273 
274 
275 
276 
277 
278  // ---------------------------------------- Comparison operators ---------------------------------------- //
284  inline bool operator<(const Datum& datum) const
285  {
286  return id < datum.id;
287  }
293  inline bool operator>(const Datum& datum) const
294  {
295  return id > datum.id;
296  }
302  inline bool operator<=(const Datum& datum) const
303  {
304  return id <= datum.id;
305  }
311  inline bool operator>=(const Datum& datum) const
312  {
313  return id >= datum.id;
314  }
320  inline bool operator==(const Datum& datum) const
321  {
322  return id == datum.id;
323  }
329  inline bool operator!=(const Datum& datum) const
330  {
331  return id != datum.id;
332  }
333  };
334 
335  // Defines for Datum. Added here rather than in `macros.hpp` to avoid circular dependencies
336  #define DATUM_BASE_NO_PTR std::vector<Datum>
337  #define DATUM_BASE std::shared_ptr<DATUM_BASE_NO_PTR>
338  #define DEFINE_TEMPLATE_DATUM(templateName) template class OP_API templateName<DATUM_BASE>
339  #define COMPILE_TEMPLATE_DATUM(templateName) extern DEFINE_TEMPLATE_DATUM(templateName)
340 }
341 
342 #endif // OPENPOSE_CORE_DATUM_HPP
std::string name
Definition: datum.hpp:23
double scaleInputToOutput
Definition: datum.hpp:196
bool operator==(const Datum &datum) const
Definition: datum.hpp:320
Array< long long > poseIds
Definition: datum.hpp:74
std::vector< Array< float > > inputNetData
Definition: datum.hpp:41
Array< float > faceKeypoints3D
Definition: datum.hpp:166
Array< float > poseHeatMaps
Definition: datum.hpp:98
cv::Mat cameraMatrix
Definition: datum.hpp:179
std::array< Array< float >, 2 > handHeatMaps
Definition: datum.hpp:152
double scaleNetToOutput
Definition: datum.hpp:206
std::pair< int, std::string > elementRendered
Definition: datum.hpp:212
std::vector< double > scaleInputToNetInputs
Definition: datum.hpp:185
std::vector< std::vector< std::array< float, 3 > > > poseCandidates
Definition: datum.hpp:109
bool operator!=(const Datum &datum) const
Definition: datum.hpp:329
Array< float > poseKeypoints3D
Definition: datum.hpp:159
std::array< Array< float >, 2 > handKeypoints3D
Definition: datum.hpp:174
std::vector< Rectangle< float > > faceRectangles
Definition: datum.hpp:116
Array< float > poseKeypoints
Definition: datum.hpp:65
std::vector< std::array< Rectangle< float >, 2 > > handRectangles
Definition: datum.hpp:137
bool operator<(const Datum &datum) const
Definition: datum.hpp:284
Array< float > outputData
Definition: datum.hpp:49
std::array< Array< float >, 2 > handKeypoints
Definition: datum.hpp:145
std::vector< Point< int > > netInputSizes
Definition: datum.hpp:191
Definition: datum.hpp:15
Point< int > netOutputSize
Definition: datum.hpp:201
Array< float > faceHeatMaps
Definition: datum.hpp:130
cv::Mat cvInputData
Definition: datum.hpp:30
cv::Mat cvOutputData
Definition: datum.hpp:57
Array< float > faceKeypoints
Definition: datum.hpp:123
Array< float > poseScores
Definition: datum.hpp:84
unsigned long long id
Definition: datum.hpp:18
bool operator<=(const Datum &datum) const
Definition: datum.hpp:302
#define OP_API
Definition: macros.hpp:15
bool operator>(const Datum &datum) const
Definition: datum.hpp:293
bool operator>=(const Datum &datum) const
Definition: datum.hpp:311
std::string string
Definition: cl2.hpp:574