33 #include <Color/ColorParameterSet.h>
34 #include <SegmentableRecognition/SegmentableRecognition.h>
35 #include <Visualizer/OpenGLVisualizer.h>
53 static inline Eigen::Vector3f
54 stringToVector3f(std::string propertyValue)
57 sscanf(propertyValue.c_str(),
69 defineOptionalProperty<std::string>(
71 "VisionX/examples/colors.txt",
72 "The color parameter file configures the colors used for segmentable recognition "
73 "(usually colors.txt)");
74 defineOptionalProperty<float>(
77 "Minimum number of pixels per region for detecting a uniformly colored object");
78 defineOptionalProperty<float>(
79 "MaxEpipolarDistance",
81 "Maximum epipolar line distance allowed for a valid 3D recognition result");
87 defineOptionalProperty<Eigen::Vector3f>(
"MinPoint",
88 Eigen::Vector3f(-3000.0f, -3000.0f, 100.0f),
89 "min point for valid result bounding box")
91 defineOptionalProperty<Eigen::Vector3f>(
"MaxPoint",
92 Eigen::Vector3f(3000.0f, 3000.0f, 3500.0f),
93 "max point for valid result bounding box")
96 defineOptionalProperty<float>(
"SizeRatioThreshold", 0.7f,
"");
97 defineOptionalProperty<float>(
"CorrelationThreshold", 0.7f,
"");
123 const std::string& referenceName,
124 const Ice::Current&
c = Ice::emptyCurrent)
override
127 stereoCalibration,
x, referenceName,
c);
138 return "SegmentableObjectRecognition";
152 offeringTopic(getProperty<std::string>(
"DebugObserverName").getValue());
164 debugObserver = getTopic<armarx::DebugObserverInterfacePrx>(
165 getProperty<std::string>(
"DebugObserverName").getValue());
200 memoryx::ObjectLocalizationResultList
208 float calculateRecognitionCertainty(
const std::string& objectClassName,
209 const Object3DEntry& entry);
210 void visualizeResults(
const Object3DList& objectList, CByteImage**
resultImages);
214 std::shared_ptr<CGLContext> contextGL;
215 std::shared_ptr<COpenGLVisualizer> m_pOpenGLVisualizer;
218 float minPixelsPerRegion;
219 float maxEpipolarDistance;
223 std::map<std::string, ObjectColor> objectColors;
225 Vec3d validResultBoundingBoxMin, validResultBoundingBoxMax;
228 std::map<std::string, int> seq;