29 #include <SimoxUtility/algorithm/string/string_tools.h>
32 #include <VisionX/interface/components/Calibration.h>
33 #include <VisionX/interface/components/ImageSourceSelectionInterface.h>
38 class StereoResultImageProvider;
40 static std::vector<std::string>
41 stringToVector(std::string propertyValue)
58 defineOptionalProperty<visionx::ImageDimension>(
59 "TargetDimension", visionx::ImageDimension(640, 480),
"")
60 .setCaseInsensitive(
true)
61 .map(
"320x240", visionx::ImageDimension(320, 240))
62 .map(
"640x480", visionx::ImageDimension(640, 480))
63 .map(
"800x600", visionx::ImageDimension(800, 600))
64 .map(
"768x576", visionx::ImageDimension(768, 576))
65 .map(
"1024x768", visionx::ImageDimension(1024, 768))
66 .map(
"1280x720", visionx::ImageDimension(1280, 960))
67 .map(
"1280x960", visionx::ImageDimension(1280, 960))
68 .map(
"1280x1024", visionx::ImageDimension(1280, 960))
69 .map(
"1600x1200", visionx::ImageDimension(1600, 1200))
70 .map(
"1920x1080", visionx::ImageDimension(1920, 1080))
71 .map(
"1920x1200", visionx::ImageDimension(1920, 1200));
72 defineOptionalProperty<int>(
75 "If set to >0, this number of images will be reported. Otherwise, the number of "
76 "images of the first image provider will be used.");
78 defineOptionalProperty<std::string>(
79 "resultProviderName",
"Armar3ImageProvider",
"Names of the result image provider");
80 defineOptionalProperty<std::string>(
81 "defaultProviderName",
83 "Name of the image provider to be used when no provider is set.");
103 virtual public ImageSourceSelectionInterface
112 return "ImageSourceSelection";
116 int relativeTimeoutMs,
117 const Ice::Current&
c)
override;
122 std::unique_lock lock(imageSourceMutex);
123 return providerTimeouts.empty() ? defaultProvider : providerTimeouts.begin()->first;
133 visionx::ImageType imageType);
167 visionx::ImageType imageDisplayType,
171 visionx::ImageDimension targetDimension;
172 float scaleFactorX, scaleFactorY;
174 std::recursive_mutex mutex, imageSourceMutex;
176 std::map<std::string, visionx::CByteImageUPtrVec> cameraImages;
181 std::string defaultProvider;
183 visionx::ImageType imageDisplayType;
186 std::vector<std::pair<std::string, IceUtil::Time>> providerTimeouts;
187 void deleteTimedOutProviders();
192 virtual public visionx::StereoCalibrationProviderInterface
201 visionx::StereoCalibration
204 return stereoCalibration;
210 return imagesAreUndistorted;
216 return referenceFrame;
221 bool imagesAreUndistorted,
222 const std::string& referenceFrame)
224 this->stereoCalibration = stereoCalibration;
225 this->imagesAreUndistorted = imagesAreUndistorted;
226 this->referenceFrame = referenceFrame;
227 calibrationPrx->reportStereoCalibrationChanged(
228 this->stereoCalibration, this->imagesAreUndistorted, this->referenceFrame);
244 getTopic<StereoCalibrationUpdateInterfacePrx>(
"StereoCalibrationInterface");
248 visionx::StereoCalibration stereoCalibration;
249 bool imagesAreUndistorted;
250 StereoCalibrationUpdateInterfacePrx calibrationPrx;
251 std::string referenceFrame;