1 #ifndef CARDINAL_SPLINE_MODEL_HPP
2 #define CARDINAL_SPLINE_MODEL_HPP
12 MatrixXf getStateTransitionMatrix1();
13 MatrixXf getStateTransitionMatrix2();
14 MatrixXf getStateTransitionMatrix3();
15 MatrixXf getProcessErrorMatrix();
16 VectorXf getInitialState(std::shared_ptr<Image> image);
17 std::vector<MatrixXf> getMeasurementVectors(VectorXf state,
Shape::pointer shape);
18 void initializeShapeToImageCenter();
25 void setControlPoints(std::vector<Vector2f> controlPoints);
26 void setInitialScaling(
float x,
float y);
27 void setInitialRotation(
float angleInRadians);
28 void setInitialTranslation(
float x,
float y);
29 void setLocalProcessError(
float error);
30 void setGlobalProcessError(
float error);
34 void setTension(
float tension);
39 void setTension(std::vector<float> tension);
40 void setResolution(
int resolution);
41 VectorXf restrictState(VectorXf state);
45 void setScalingLimit(
float min = -1,
float max = -1);
48 void assertControlPointsGiven();
49 void updateProcessErrorMatrix();
50 std::vector<Vector2f> getLocallyDeformedVertices(VectorXf state);
51 std::vector<float> getTensionVector(
uint nrOfControlPoints)
const;
56 MatrixXf mProcessErrorMatrix;
57 float mLocalProcessError;
58 float mGlobalProcessError;
59 VectorXf mInitialGlobalState;
62 float mMinScaling, mMaxScaling;
64 std::vector<Vector2f> mControlPoints;
66 std::vector<float> mTensionPerVertex;
70 bool mInitializeShapeToImageCenter;