7 #include <QSharedPointer> 9 #include "reliabilitysinglemodelinterface.h" 11 #include "Blob2DFromBGSubstractionModel.h" 13 #include "src/hullmodel.h" 27 virtual void initInstanceAttributes();
31 virtual void initDynamicsAttributes();
34 virtual void copy(SpReliabilitySingleModelInterface);
37 virtual void copy_structure(SpReliabilitySingleModelInterface);
40 virtual void setParameters(QDomNode &i_parameters);
55 virtual bool updateInstance(
BoundingBox &, std::set<SpRMMHypothesis, hypothesesOrderedByBestProbabilityOperator> &);
72 virtual bool draw(QPainter &painter,
int r,
int g,
int b);
75 void updateDynamics();
82 virtual void setForwardInterface();
99 bool shapeAnalysis(
float &headX,
float &headY,
float &dirX,
float &dirY,
float &bodyX,
float &bodyY,
BoundingBox &ro);
102 SpHullModel deguShape;
108 static bool movementFound(cv::Mat f,
int wsize,
int i0,
int j0);
109 static bool movementFound(cv::Mat f,
int wsize,
int i0,
int j0, cv::Rect roi);
110 static double histogramDistance(cv::MatND h1, cv::MatND h2);
111 static double distanceToSegment(
int i1,
int i2, std::vector<cv::Point> &contour);
112 static bool lineSegmentIntersection(cv::Point3f &line,
113 cv::Point2f &p1, cv::Point2f &p2, cv::Point2f &r);
114 static bool getGeneralLineForm(cv::Point2f p1, cv::Point2f p2,
116 static bool getGeneralLineForm(
float x,
float y,
float dx,
float dy,
123 static int getContourToLineIntersection(std::vector<cv::Point> &hull,
125 cv::Point2f &r1, cv::Point2f &r2,
126 int *n1 = NULL,
int *n2 = NULL);
129 void getNormalIntersections(cv::Mat &f, cv::Rect &roi, std::vector<cv::Point> &hull,
130 cv::Point2f &r1, cv::Point2f &r2,
int n1,
int n2,
135 void setForegroundSegment(cv::Mat &f, cv::Rect &roi, std::vector<cv::Point> &hull,
137 float dx,
float dy,
int &I1,
int &I2);
142 static int getContourToLineIntersectionIndexed(std::vector<cv::Point> &polygon,
144 cv::Point2f &r1, cv::Point2f &r2,
148 static int movementCount(cv::Mat f,
int wsize,
int i0,
int j0, cv::Rect roi);
150 void findHead(SpHullModel hull);
153 cv::Point2f headLocation;
156 void displayShowHull(QPainter &painter, SpHullModel hull);
157 void displayShowAxis(QPainter &painter, SpHullModel hull);
158 void displayShowNormals(QPainter &painter, SpHullModel hull);
159 void displayBackBone(QPainter &painter, SpHullModel hull);
162 void backBoneAnalysis(SpHullModel hull);
165 float ay, by, cy, ax, bx, cx;
167 bool drawBackBoneCurve(QPainter &painter,SpHullModel hull);
168 bool drawHeadDirection(QPainter &painter,SpHullModel hull);
170 bool drawHeadRealDirection(QPainter &painter,SpHullModel hull);
175 std::vector< segment2D<float> > uncertaintyPoint;
176 std::vector< segment2D<float> > uncertaintyDirection;
182 std::vector< cv::Point2f > headPoint;
183 std::vector< cv::Point2f > headDirection;
185 int framesToBeUncertain;
188 bool analysesDirection(
float &dirHeadX,
float &dirHeadY,
float &dirHipsX,
float &dirHipsY,SpHullModel hull);
193 bool drawFlagNormals;
194 bool drawFlagBackBone;
195 bool drawFlagBoneCurve;
196 bool drawFlagHeadDirection;
197 bool drawFlagHeadRealDirection;
199 float speedThreshold;
202 bool findTail(SpHullModel hull);
207 void stopOpticalFlow();
211 bool opticalFlowRunning;
215 cv::Rect opticalFlowBox;
220 std::vector<cv::Point2f> lastPoint;
221 std::vector<cv::Point2f> currentPoint;
223 void drawEntropy(QPainter &painter);
225 cv::Point2f surf(std::vector<cv::Point2f> vectors);
227 void quickSortAngle(std::vector<cv::Point2f> &vectors, std::vector<float> &angles,
int init,
int end);
230 void drawResultOpticalVector(QPainter &painter, SpHullModel hull);
232 void drawHead(QPainter &painter, SpHullModel hull);
234 cv::Point2f vectorSums(std::vector<cv::Point2f> vectors, std::vector<cv::Point2f> points,SpHullModel hull);
236 cv::Point2f lastHeadPoint;
237 cv::Point2f actualHeadPoint;
239 bool drawTail(QPainter &painter,SpHullModel hull);
241 cv::Point2f vectorSumsPivote(std::vector<cv::Point2f> vectors, std::vector<cv::Point2f> points,SpHullModel hull, cv::Point2f pivote);
243 cv::Point2f
opticalRotation(std::vector<cv::Point2f> vectors, std::vector<cv::Point2f> points,SpHullModel hull);
246 std::vector<cv::Point2f> wannabeSurfResult;
247 std::vector<cv::Point2f> sumaResult;
248 std::vector<cv::Point2f> sumaPivoteResult;
249 std::vector<cv::Point2f> opticalRotationResult;
251 cv::Point2f lastMiddlePoint;
259 #endif // SHAPEMODEL_H Definition: geometric.h:103
cv::Point2f opticalRotation(std::vector< cv::Point2f > vectors, std::vector< cv::Point2f > points, SpHullModel hull)
ShapeModel::opticalRotation. Metodo que calcula la rotacion del objeto despues de aplicar un optical ...
Definition: shapeModel.cpp:3726
Definition: reliabilitysinglemodelinterface.h:96
bool shapeAnalysis(float &headX, float &headY, float &dirX, float &dirY, float &bodyX, float &bodyY, BoundingBox &ro)
Definition: shapeModel.cpp:464
Definition: shapeModel.h:19
virtual void setProbabilityAndReliability()
Definition: shapeModel.cpp:350
virtual void updateModelDynamics()
Definition: shapeModel.cpp:321
An object of this class is instantiated at main code, and this object is used by every class to push ...
Definition: Datapool.h:39
int findTailAlgorithm(SpHullModel hull)
ShapeModel::findTailAlgorithm Algoritmo de deteccion de cola.
Definition: shapeModel.cpp:3902
bool drawTail(QPainter &painter, SpHullModel hull)
ShapeModel::drawTail DEPRECATED.
Definition: shapeModel.cpp:2875