Mercurial Hosting > traffic-intelligence
changeset 362:cc8e54997d4c
corrected error in tests and changed sstream to ostream for FeatureTrajectory operator<<
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 12 Jul 2013 00:22:09 -0400 |
parents | 9d486af42e49 |
children | 68861b52a319 |
files | c/test_graph.cpp include/Motion.hpp |
diffstat | 2 files changed, 20 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/c/test_graph.cpp Thu Jul 11 15:21:13 2013 -0400 +++ b/c/test_graph.cpp Fri Jul 12 00:22:09 2013 -0400 @@ -11,10 +11,14 @@ using namespace cv; TEST_CASE("graph/connected_components", "test graph connected components") { - FeatureGraph featureGraph(5, 1, 5 , 1.); // (float _connectionDistance, float _segmentationDistance, unsigned int _minFeatureTime, float _minNFeaturesPerGroup) - unsigned int lastInstant = 20; - FeatureTrajectoryPtr ft1 = createFeatureTrajectory(1, 10, lastInstant, Point2f(1,1), Point2f(0.5, 0.)); - FeatureTrajectoryPtr ft2 = createFeatureTrajectory(2, 10, lastInstant, Point2f(1.1,1), Point2f(0.5, 0.)); + float connectionDistance = 5.; + float segmentationDistance = 1.; + unsigned int minFeatureTime = 5; + float minNFeaturesPerGroup = 0.99; + FeatureGraph featureGraph(connectionDistance, segmentationDistance, minFeatureTime, minNFeaturesPerGroup); + unsigned int firstInstant = 10, lastInstant = 20; + FeatureTrajectoryPtr ft1 = createFeatureTrajectory(1, firstInstant, lastInstant, Point2f(1,1), Point2f(0.5, 0.)); + FeatureTrajectoryPtr ft2 = createFeatureTrajectory(2, firstInstant, lastInstant, Point2f(1.1,1), Point2f(0.5, 0.)); featureGraph.addFeature(ft1); REQUIRE(featureGraph.getNVertices() == 1); @@ -40,11 +44,18 @@ // test connection distance featureGraph.addFeature(ft1); featureGraph.addFeature(ft2); - FeatureTrajectoryPtr ft3 = createFeatureTrajectory(3, 10, lastInstant, Point2f(6.05,1), Point2f(0.5, 0.)); // connected to ft2 only + FeatureTrajectoryPtr ft3 = createFeatureTrajectory(3, firstInstant, lastInstant, Point2f(6.05,1), Point2f(0.5, 0.)); // connected to ft2 only featureGraph.addFeature(ft3); - FeatureTrajectoryPtr ft4 = createFeatureTrajectory(4, 10, lastInstant, Point2f(11.1,1), Point2f(0.5, 0.)); // not connected + FeatureTrajectoryPtr ft4 = createFeatureTrajectory(4, firstInstant, lastInstant, Point2f(11.1,1), Point2f(0.5, 0.)); // not connected featureGraph.addFeature(ft4); + REQUIRE(ft1->minMaxSimilarity(*ft2, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE(ft2->minMaxSimilarity(*ft3, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE_FALSE(ft1->minMaxSimilarity(*ft3, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE_FALSE(ft1->minMaxSimilarity(*ft4, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE_FALSE(ft2->minMaxSimilarity(*ft4, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE_FALSE(ft3->minMaxSimilarity(*ft4, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE(featureGraph.getNVertices() == 4); REQUIRE(featureGraph.getNEdges() == 2);
--- a/include/Motion.hpp Thu Jul 11 15:21:13 2013 -0400 +++ b/include/Motion.hpp Fri Jul 12 00:22:09 2013 -0400 @@ -53,7 +53,7 @@ void draw(cv::Mat& img, const cv::Mat& homography, const cv::Scalar& color) const; #endif - friend std::stringstream& operator<<(std::stringstream& out, const FeatureTrajectory& ft); + friend std::ostream& operator<<(std::ostream& out, const FeatureTrajectory& ft); protected: /// first frame number @@ -63,7 +63,7 @@ TrajectoryPoint2fPtr positions; /** one fewer velocity than position - v_n = p_n+1 - p_n*/ + v_n = p_n - p_n-1*/ TrajectoryPoint2fPtr velocities; /// norms of velocities for feature constraints, one fewer positions than positions @@ -75,7 +75,7 @@ typedef boost::shared_ptr<FeatureTrajectory> FeatureTrajectoryPtr; // inlined -inline std::stringstream& operator<<(std::stringstream& out, const FeatureTrajectory& ft) { +inline std::ostream& operator<<(std::ostream& out, const FeatureTrajectory& ft) { out << *(ft.positions); out << "\n"; out << *(ft.velocities);