OpenPose  1.0.0rc2
OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
pointGrey.hpp
Go to the documentation of this file.
1 #ifndef OPENPOSE_EXPERIMENTAL_3D_POINT_GREY_HPP
2 #define OPENPOSE_EXPERIMENTAL_3D_POINT_GREY_HPP
3 
7 
8 namespace op
9 {
10  // Following OpenPose `tutorial_wrapper/` examples, we create our own class inherited from WorkerProducer.
11  // This worker:
12  // 1. Set hardware trigger and the buffer to get the latest obtained frame.
13  // 2. Read images from FLIR cameras.
14  // 3. Turn them into std::vector<cv::Mat>.
15  // 4. Return the resulting images wrapped into a std::shared_ptr<std::vector<Datum3D>>.
16  // The HW trigger + reading FLIR camera code is highly based on the Spinnaker SDK examples `AcquisitionMultipleCamera`
17  // and specially `Trigger`
18  // (located in `src/`). See them for more details about the cameras.
19  // See `examples/tutorial_wrapper/` for more details about inhering the WorkerProducer class.
20  class OP_API WPointGrey : public WorkerProducer<std::shared_ptr<std::vector<Datum3D>>>
21  {
22  public:
23  WPointGrey();
24 
25  ~WPointGrey();
26 
27  void initializationOnThread();
28 
29  std::shared_ptr<std::vector<Datum3D>> workProducer();
30 
31  private:
32  // PIMPL idiom
33  // http://www.cppsamples.com/common-tasks/pimpl.html
34  struct ImplWPointGrey;
35  std::unique_ptr<ImplWPointGrey> upImpl;
36  };
37 }
38 
39 #endif // OPENPOSE_EXPERIMENTAL_3D_POINT_GREY_HPP
Definition: workerProducer.hpp:10
Definition: pointGrey.hpp:20
#define OP_API
Definition: macros.hpp:9