ImageBuffer.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <functional>
4 #include <mutex>
5 
6 
7 class CByteImage;
8 
9 namespace visionx
10 {
11  class ImageProviderInfo;
12 }
13 
14 namespace visionx
15 {
16 
17  /**
18  * @brief Handler of image buffer for ImageProcessors.
19  *
20  * How to call allocate (in `onConnectImageProcessor()`):
21  *
22  * @code
23  * visionx::ImageProviderInfo imageProviderInfo = getImageProvider(providerName);
24  *
25  * imageBuffer.allocate(providerInfo);
26  * @endcode
27  *
28  *
29  * How to call update (in `process()`):
30  *
31  * @code
32  * int numReceived = 0;
33  *
34  * imageBuffer.update([this, &numReceived](CByteImage** images)
35  * {
36  * numReceived = getImages(images);
37  * });
38  * @endcode
39  */
41  {
42  public:
43  ~ImageBuffer();
44 
45  void allocate(const visionx::ImageProviderInfo& providerInfo);
46 
47  void deallocate();
48 
49  void update(std::function<void(CByteImage**)> setImagesFn);
50 
51 
52  mutable std::mutex mutex;
53 
54  CByteImage** images = nullptr;
55  /// Update this each time you update images.
56  long imagesSeq = 0;
57 
58 
59  private:
60  unsigned int numImages = 0;
61  };
62 
63 } // namespace visionx
visionx::ImageBuffer::images
CByteImage ** images
Definition: ImageBuffer.h:54
visionx::ImageBuffer::update
void update(std::function< void(CByteImage **)> setImagesFn)
Definition: ImageBuffer.cpp:52
visionx
ArmarX headers.
Definition: OpenPoseStressTest.h:38
visionx::ImageBuffer::~ImageBuffer
~ImageBuffer()
Definition: ImageBuffer.cpp:11
visionx::ImageBuffer
Handler of image buffer for ImageProcessors.
Definition: ImageBuffer.h:40
visionx::ImageBuffer::mutex
std::mutex mutex
Definition: ImageBuffer.h:52
visionx::ImageProviderInfo
Definition: ImageProcessor.h:479
visionx::ImageBuffer::imagesSeq
long imagesSeq
Update this each time you update images.
Definition: ImageBuffer.h:56
visionx::ImageBuffer::allocate
void allocate(const visionx::ImageProviderInfo &providerInfo)
Definition: ImageBuffer.cpp:20
visionx::ImageBuffer::deallocate
void deallocate()
Definition: ImageBuffer.cpp:36