ImageBuffer.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4#include <mutex>
5
6
7class CByteImage;
8
9namespace visionx
10{
12}
13
14namespace 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:
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
Handler of image buffer for ImageProcessors.
Definition ImageBuffer.h:41
void update(std::function< void(CByteImage **)> setImagesFn)
long imagesSeq
Update this each time you update images.
Definition ImageBuffer.h:56
void allocate(const visionx::ImageProviderInfo &providerInfo)
CByteImage ** images
Definition ImageBuffer.h:54
ArmarX headers.