36 setupPropertyDefinitions(def);
37 def->optional(providerName,
"ImageProviderName");
44 usingImageProvider(providerName);
47 readErrorCounter2d = 0;
55 imageProviderInfo = getImageProvider(providerName, imageDisplayType);
56 openposeInputImageFormat = imageProviderInfo.imageFormat;
58 setupLocalVariables();
60 numImages =
static_cast<unsigned int>(imageProviderInfo.numberImages);
61 if (numImages < 1 || numImages > 2)
67 imageBuffer =
new CByteImage*[numImages];
68 for (
unsigned int i = 0; i < numImages; i++)
74 1, imageProviderInfo.imageFormat.dimension, imageProviderInfo.imageFormat.type);
76 ARMARX_INFO <<
"OpenPoseEstimationImageProcessor connect done";
84 destroyLocalVariables();
97 if (!waitForImages(providerName))
101 <<
" (#timeout " << timeoutCounter2d <<
", #read error "
102 << readErrorCounter2d <<
", #success " << sucessCounter2d <<
")";
106 if (
static_cast<unsigned int>(getImages(providerName, imageBuffer, imageMetaInfo)) !=
109 ++readErrorCounter2d;
111 <<
" (#timeout " << timeoutCounter2d <<
", #read error "
112 << readErrorCounter2d <<
", #success " << sucessCounter2d <<
")";
120 std::unique_lock lock_rgb(rgbImageBufferMutex);
121 ::ImageProcessor::CopyImage(imageBuffer[0], rgbImageBuffer);
125 std::unique_lock lock_depth(depthImageBufferMutex);
126 ::ImageProcessor::CopyImage(imageBuffer[1], depthImageBuffer);
129 timestamp_of_update = imageMetaInfo->timeProvided;