29#include <SimoxUtility/algorithm/string/string_tools.h>
32#include <VisionX/interface/components/Calibration.h>
33#include <VisionX/interface/components/ImageSourceSelectionInterface.h>
40 static std::vector<std::string>
41 stringToVector(std::string propertyValue)
43 std::vector<std::string> result = simox::alg::split(propertyValue,
"\t ,");
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));
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.");
79 "resultProviderName",
"Armar3ImageProvider",
"Names of the result image provider");
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);
248 visionx::StereoCalibration stereoCalibration;
249 bool imagesAreUndistorted;
250 StereoCalibrationUpdateInterfacePrx calibrationPrx;
251 std::string referenceFrame;
ImageSourceSelectionPropertyDefinitions(std::string prefix)
Brief description of class ImageSourceSelection.
bool addImageProvider(const std::string &providerName)
void onConnectImageProcessor() override
void enableStereoResultImages(visionx::ImageDimension imageDimension, visionx::ImageType imageType)
enable stereo result images
void onExitImageProcessor() override
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
void removeImageSource(const std::string &imageSource)
std::string getCurrentImageSource(const Ice::Current &c=Ice::emptyCurrent) override
void onInitImageProcessor() override
void setImageSource(const std::string &imageSource, int relativeTimeoutMs, const Ice::Current &c) override
std::string getDefaultName() const override
void offeringTopic(const std::string &name)
Registers a topic for retrival after initialization.
TopicProxyType getTopic(const std::string &name)
Returns a proxy of the specified topic.
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
PropertyDefinition< PropertyType > & defineOptionalProperty(const std::string &name, PropertyType defaultValue, const std::string &description="", PropertyDefinitionBase::PropertyConstness constness=PropertyDefinitionBase::eConstant)
PropertyDefinition defines a property that will be available within the PropertyUser.
std::string getReferenceFrame(const Ice::Current &c=Ice::emptyCurrent) override
void setStereoCalibration(visionx::StereoCalibration stereoCalibration, bool imagesAreUndistorted, const std::string &referenceFrame)
visionx::StereoCalibration getStereoCalibration(const Ice::Current &c=Ice::emptyCurrent) override
void onConnectImageProvider() override
This is called when the Component::onConnectComponent() setup is called.
bool getImagesAreUndistorted(const Ice::Current &c=Ice::emptyCurrent) override
StereoResultImageProvider()
void onInitImageProvider() override
This is called when the Component::onInitComponent() is called.
friend class ImageSourceSelection
ImageProcessorPropertyDefinitions(std::string prefix)
The ImageProcessor class provides an interface for access to ImageProviders via Ice and shared memory...
virtual void onConnectImageProvider()
This is called when the Component::onConnectComponent() setup is called.
The ResultImageProvider is used by the ImageProcessor to stream result images to any other processor ...
void onInitImageProvider() override
This is called when the Component::onInitComponent() is called.
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< StereoResultImageProvider > StereoResultImageProviderPtr
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
std::vector< std::unique_ptr< CByteImage > > CByteImageUPtrVec