28 #if defined(ErrorBijectiveRotation_RECURSES)
29 #error Recursive header files inclusion detected in ErrorBijectiveRotation.h
32 #define ErrorBijectiveRotation_RECURSES
34 #if !defined ErrorBijectiveRotation_h
36 #define ErrorBijectiveRotation_h
40 #include <DGtal/images/RigidTransformation2D.h>
43 template<
typename TSpace,
typename TDomain,
typename TBijectiveReflections,
typename TInputValue =
typename TSpace::RealPo
int,
typename TOutputValue =
typename TSpace::Po
int>
47 typedef std::vector<std::vector<typename TSpace::RealPoint>>
VectorField;
56 ErrorVectorField(
const TBijectiveReflections& reflections,
const double theta,
const typename TSpace::Point center):
normalVectors(reflections),
targetRotation(center,theta,{0,0}),
my_center(center),
originCenteredRotation({0,0},theta,{0,0})
66 std::vector<typename TSpace::RealPoint> pixelError;
74 pixelError.push_back(error);
77 if(continuityVecField) {
79 for(
int veci = -1 ; veci <2 ; ++veci) {
80 for(
int vecj = -1 ; vecj<2 ; ++vecj) {
81 if(veci!=0 || vecj!=0){
84 pixelError.push_back(neigh_rot-preflections);
93 outVecField.push_back(pixelError);
101 #undef ErrorBijectiveRotation_RECURSES
MyDigitalSurface::ConstIterator ConstIterator
DGtal is the top-level namespace which contains all DGtal functions and types.
RealRotation targetRotation
ErrorVectorField(const TBijectiveReflections &reflections, const double theta, const typename TSpace::Point center)
RealRotation originCenteredRotation
std::vector< std::vector< typename TSpace::RealPoint > > VectorField
VectorField getOutputVectorFieldFromContour(const TDomain &set2dContour, bool continuityVecField=false)
functors::ForwardRigidTransformation2D< TSpace, TInputValue, typename TSpace::RealPoint, functors::Identity > RealRotation
TBijectiveReflections normalVectors
PointVector< 3, double > RealPoint