ImageBuffer.cpp
Go to the documentation of this file.
1
#include "
ImageBuffer.h
"
2
3
#include <
ArmarXCore/core/exceptions/local/ExpressionException.h
>
4
5
#include <
VisionX/core/ImageProcessor.h
>
6
#include <
VisionX/tools/ImageUtil.h
>
7
8
namespace
visionx
9
{
10
11
ImageBuffer::~ImageBuffer
()
12
{
13
if
(
images
)
14
{
15
deallocate
();
16
}
17
}
18
19
void
20
ImageBuffer::allocate
(
const
visionx::ImageProviderInfo
& providerInfo)
21
{
22
ARMARX_CHECK_NULL
(
images
) <<
"Images have already been allocated."
;
23
24
std::scoped_lock lock(
mutex
);
25
26
numImages = providerInfo.
numberImages
;
27
28
images
=
new
CByteImage*[numImages];
29
for
(
size_t
i = 0; i < numImages; i++)
30
{
31
images
[i] =
visionx::tools::createByteImage
(providerInfo);
32
}
33
}
34
35
void
36
ImageBuffer::deallocate
()
37
{
38
ARMARX_CHECK_NOT_NULL
(
images
)
39
<<
"Images have not yet been allocated and thus cannot be deallocated."
;
40
41
std::scoped_lock lock(
mutex
);
42
for
(
size_t
i = 0; i < numImages; i++)
43
{
44
delete
images
[i];
45
}
46
delete
[]
images
;
47
48
images
=
nullptr
;
49
}
50
51
void
52
ImageBuffer::update
(std::function<
void
(CByteImage**)> setImagesFn)
53
{
54
std::scoped_lock lock(
mutex
);
55
ARMARX_CHECK_NOT_NULL
(
images
) <<
"Images must be allocated before calling update()."
;
56
setImagesFn(
images
);
57
imagesSeq
++;
58
}
59
}
// namespace visionx
visionx::ImageBuffer::images
CByteImage ** images
Definition:
ImageBuffer.h:54
visionx::ImageProviderInfo::numberImages
int numberImages
Number of images.
Definition:
ImageProcessor.h:519
visionx::ImageBuffer::update
void update(std::function< void(CByteImage **)> setImagesFn)
Definition:
ImageBuffer.cpp:52
visionx
ArmarX headers.
Definition:
OpenPoseStressTest.h:38
ARMARX_CHECK_NOT_NULL
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
Definition:
ExpressionException.h:206
visionx::ImageBuffer::~ImageBuffer
~ImageBuffer()
Definition:
ImageBuffer.cpp:11
visionx::ImageBuffer::mutex
std::mutex mutex
Definition:
ImageBuffer.h:52
visionx::tools::createByteImage
CByteImage * createByteImage(const ImageFormatInfo &imageFormat, const ImageType imageType)
Creates a ByteImage for the destination type specified in the given imageProviderInfo.
visionx::ImageProviderInfo
Definition:
ImageProcessor.h:479
ImageProcessor.h
ImageBuffer.h
ExpressionException.h
visionx::ImageBuffer::imagesSeq
long imagesSeq
Update this each time you update images.
Definition:
ImageBuffer.h:56
ImageUtil.h
ARMARX_CHECK_NULL
#define ARMARX_CHECK_NULL(ptr)
Definition:
ExpressionException.h:212
visionx::ImageBuffer::allocate
void allocate(const visionx::ImageProviderInfo &providerInfo)
Definition:
ImageBuffer.cpp:20
visionx::ImageBuffer::deallocate
void deallocate()
Definition:
ImageBuffer.cpp:36
VisionX
core
ImageBuffer.cpp
Generated on Sat Mar 29 2025 09:17:37 for armarx_documentation by
1.8.17