32 #include <Color/ColorParameterSet.h>
33 #include <Visualizer/OpenGLVisualizer.h>
39 class CObjectFinderStereo;
49 static inline Eigen::Vector3f stringToVector3f(std::string propertyValue)
52 sscanf(propertyValue.c_str(),
"%f, %f, %f", &vec.data()[0], &vec.data()[1], &vec.data()[2]);
59 defineOptionalProperty<std::string>(
"ColorParameterFile",
"VisionX/examples/colors.txt",
"The color parameter file configures the colors used for segmentable recognition (usually colors.txt)");
60 defineOptionalProperty<float>(
"MinPixelsPerRegion", 200,
"Minimum number of pixels per region for detecting a uniformly colored object");
61 defineOptionalProperty<float>(
"MaxEpipolarDistance", 6,
"Maximum epipolar line distance allowed for a valid 3D recognition result");
65 defineOptionalProperty<Eigen::Vector3f>(
"MinPoint", Eigen::Vector3f(-3000.0f, -3000.0f, 100.0f),
"min point for valid result bounding box").setFactory(f);
66 defineOptionalProperty<Eigen::Vector3f>(
"MaxPoint", Eigen::Vector3f(3000.0f, 3000.0f, 3500.0f),
"max point for valid result bounding box").setFactory(f);
68 defineOptionalProperty<std::string>(
"RobotStateComponentName",
"RobotStateComponent",
"The name of the RobotStateComponent.");
90 void reportStereoCalibrationChanged(
const StereoCalibration& stereoCalibration,
bool x,
const std::string& referenceName,
const Ice::Current&
c = Ice::emptyCurrent)
override
102 return "BlobRecognition";
115 offeringTopic(getProperty<std::string>(
"DebugObserverName").getValue());
116 usingProxy(getProperty<std::string>(
"RobotStateComponentName").getValue());
127 debugObserver = getTopic<armarx::DebugObserverInterfacePrx>(getProperty<std::string>(
"DebugObserverName").getValue());
128 robotStateComponent = getProxy<armarx::RobotStateComponentInterfacePrx>(getProperty<std::string>(
"RobotStateComponentName").getValue());
168 float calculateRecognitionCertainty(
const std::string& objectClassName,
const Object3DEntry& entry);
171 std::shared_ptr<CGLContext> contextGL;
172 std::shared_ptr<COpenGLVisualizer> m_pOpenGLVisualizer;
175 float minPixelsPerRegion;
176 float maxEpipolarDistance;
180 std::map<std::string, ObjectColor> objectColors;
181 std::map<ObjectColor, std::string> colorToObjectClass;
184 Vec3d validResultBoundingBoxMin, validResultBoundingBoxMax;
187 std::map<std::string, int> seq;