Mercurial Hosting > traffic-intelligence
changeset 187:aa1061fb9695
using minmaxsimilarity
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Thu, 01 Dec 2011 18:13:10 -0500 |
parents | 6c48283a78ca |
children | 1435965d8181 |
files | c/Motion.cpp |
diffstat | 1 files changed, 5 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/c/Motion.cpp Tue Nov 29 00:38:50 2011 -0500 +++ b/c/Motion.cpp Thu Dec 01 18:13:10 2011 -0500 @@ -65,14 +65,12 @@ } bool FeatureTrajectory::minMaxSimilarity(const FeatureTrajectory& ft, const int& firstInstant, const int& lastInstant, float connectionDistance, float segmentationDistance) { - Point2f diff = positions->getPointAtInstant(firstInstant)-ft.positions->getPointAtInstant(firstInstant); - float minDistance = norm(diff); + float minDistance = norm(positions->getPointAtInstant(firstInstant)-ft.positions->getPointAtInstant(firstInstant)); float maxDistance = minDistance; bool connected = minDistance <= connectionDistance; int t=firstInstant+1; while (t <= lastInstant && connected) { - diff = positions->getPointAtInstant(t)-ft.positions->getPointAtInstant(t); - float distance = norm(diff); + float distance = norm(positions->getPointAtInstant(t)-ft.positions->getPointAtInstant(t)); if (distance < minDistance) minDistance = distance; else if (distance > maxDistance) @@ -146,9 +144,9 @@ for (boost::graph_traits<UndirectedGraph>::vertex_iterator vi = vertices(graph).first; vi!=vertices(graph).second; ++vi) { // vi pointer to vertex_descriptor FeatureTrajectoryPtr ft2 = graph[*vi].feature; - unsigned int lastInstant = min(ft->getLastInstant(), ft2->getLastInstant()); - unsigned int firstInstant = max(ft->getLastInstant(), ft2->getLastInstant()); - if (lastInstant-firstInstant > minFeatureTime) { // equivalent to lastInstant-firstInstant+1 >= minFeatureTime + int lastInstant = static_cast<int>(min(ft->getLastInstant(), ft2->getLastInstant())); + int firstInstant = static_cast<int>(max(ft->getFirstInstant(), ft2->getFirstInstant())); + if (lastInstant-firstInstant > static_cast<int>(minFeatureTime)) { // equivalent to lastInstant-firstInstant+1 >= minFeatureTime if (ft->minMaxSimilarity(*ft2, firstInstant, lastInstant, connectionDistance, segmentationDistance)) { UndirectedGraph::edge_descriptor e; bool unused;