7 #include "mtf/AM/SSD.h"     8 #include "mtf/AM//NSSD.h"     9 #include "mtf/AM//ZNCC.h"    10 #include "mtf/AM//SCV.h"    11 #include "mtf/AM//LSCV.h"    12 #include "mtf/AM//RSCV.h"    13 #include "mtf/AM//LRSCV.h"    14 #include "mtf/AM//KLD.h"    15 #include "mtf/AM//LKLD.h"       16 #include "mtf/AM//MI.h"    17 #include "mtf/AM//SPSS.h"    18 #include "mtf/AM//SSIM.h"    19 #include "mtf/AM//NCC.h"    20 #include "mtf/AM//CCRE.h"    21 #include "mtf/AM//RIU.h"    22 #include "mtf/AM//NGF.h"    23 #include "mtf/AM//SAD.h"    25 #include "mtf/AM//MCSSD.h"    26 #include "mtf/AM//MCNCC.h"    27 #include "mtf/AM//MCMI.h"    28 #include "mtf/AM/MCSCV.h"    29 #include "mtf/AM/MCLSCV.h"    30 #include "mtf/AM/MCRSCV.h"    31 #include "mtf/AM/MCZNCC.h"    32 #include "mtf/AM/MCCCRE.h"    33 #include "mtf/AM/MCSSIM.h"    34 #include "mtf/AM/MCSPSS.h"    35 #include "mtf/AM/MCRIU.h"    36 #include "mtf/AM/MCSAD.h"    38 #include "mtf/AM/DFM.h"    41 #include "mtf/AM/PCA.h"    42 #include "mtf/AM/MCPCA.h"    46 #include "mtf/SSM/Homography.h"    47 #include "mtf/SSM/LieHomography.h"    48 #include "mtf/SSM/CBH.h"    49 #include "mtf/SSM/SL3.h"    50 #include "mtf/SSM/Affine.h"    51 #include "mtf/SSM/LieAffine.h"    52 #include "mtf/SSM/ASRT.h"    53 #include "mtf/SSM/Similitude.h"    54 #include "mtf/SSM/Isometry.h"    55 #include "mtf/SSM/AST.h"    56 #include "mtf/SSM/IST.h"    57 #include "mtf/SSM/Translation.h"    58 #include "mtf/SSM/Spline.h"     61 #define _REGISTER_TRACKERS_DFM(SM, SSM) \    62     template class mtf::SM< mtf::DFM, mtf::SSM >;    63 #define _REGISTER_AM_TRACKERS_DFM(SM) \    64     template class mtf::SM< mtf::DFM::DistType >;    66 #define _REGISTER_TRACKERS_DFM(SM, SSM)    67 #define _REGISTER_AM_TRACKERS_DFM(SM)    71 #define _REGISTER_TRACKERS_PCA(SM, SSM) \    72     template class mtf::SM< mtf::PCA, mtf::SSM >;\    73     template class mtf::SM< mtf::MCPCA, mtf::SSM >;    75 #define _REGISTER_AM_TRACKERS_PCA(SM) \    76     template class mtf::SM< mtf::PCA::DistType >;\    77     template class mtf::SM< mtf::MCPCA::DistType >;    80 #define _REGISTER_TRACKERS_PCA(SM, SSM)    81 #define _REGISTER_AM_TRACKERS_PCA(SM)    84 #define _REGISTER_TRACKERS_AM(SM, SSM) \    85     template class mtf::SM< mtf::SSD,  mtf::SSM >;\    86     template class mtf::SM< mtf::NSSD,  mtf::SSM >;\    87     template class mtf::SM< mtf::ZNCC,  mtf::SSM >;\    88     template class mtf::SM< mtf::SCV,  mtf::SSM >;\    89     template class mtf::SM< mtf::RSCV,  mtf::SSM >;\    90     template class mtf::SM< mtf::LSCV,  mtf::SSM >;\    91     template class mtf::SM< mtf::LRSCV,  mtf::SSM >;\    92     template class mtf::SM< mtf::KLD,  mtf::SSM >;\    93     template class mtf::SM< mtf::LKLD,  mtf::SSM >;\    94     template class mtf::SM< mtf::SPSS,  mtf::SSM >;\    95     template class mtf::SM< mtf::SSIM,  mtf::SSM >;\    96     template class mtf::SM< mtf::NCC,  mtf::SSM >;\    97     template class mtf::SM< mtf::CCRE,  mtf::SSM >;\    98     template class mtf::SM< mtf::MI,  mtf::SSM >;\    99     template class mtf::SM< mtf::SAD,  mtf::SSM >;\   100     template class mtf::SM< mtf::RIU,  mtf::SSM >;\   101     template class mtf::SM< mtf::NGF,  mtf::SSM >;\   102     template class mtf::SM< mtf::MCSSD,  mtf::SSM >;\   103     template class mtf::SM< mtf::MCSCV,  mtf::SSM >;\   104     template class mtf::SM< mtf::MCLSCV,  mtf::SSM >;\   105     template class mtf::SM< mtf::MCRSCV,  mtf::SSM >;\   106     template class mtf::SM< mtf::MCZNCC,  mtf::SSM >;\   107     template class mtf::SM< mtf::MCNCC,  mtf::SSM >;\   108     template class mtf::SM< mtf::MCMI,  mtf::SSM >;\   109     template class mtf::SM< mtf::MCSSIM,  mtf::SSM >;\   110     template class mtf::SM< mtf::MCSPSS,  mtf::SSM >;\   111     template class mtf::SM< mtf::MCRIU,  mtf::SSM >;\   112     template class mtf::SM< mtf::MCSAD,  mtf::SSM >;\   113     template class mtf::SM< mtf::MCCCRE,  mtf::SSM >;\   114      _REGISTER_TRACKERS_DFM(SM, SSM)\   115      _REGISTER_TRACKERS_PCA(SM, SSM)   118 #define _REGISTER_TRACKERS(SM) \   119     _REGISTER_TRACKERS_AM(SM, LieHomography)\   120     _REGISTER_TRACKERS_AM(SM, CBH)\   121     _REGISTER_TRACKERS_AM(SM, SL3)\   122     _REGISTER_TRACKERS_AM(SM, Homography)\   123     _REGISTER_TRACKERS_AM(SM, Affine)\   124     _REGISTER_TRACKERS_AM(SM, LieAffine)\   125     _REGISTER_TRACKERS_AM(SM, ASRT)\   126     _REGISTER_TRACKERS_AM(SM, Similitude)\   127     _REGISTER_TRACKERS_AM(SM, Isometry)\   128     _REGISTER_TRACKERS_AM(SM, AST)\   129     _REGISTER_TRACKERS_AM(SM, IST)\   130     _REGISTER_TRACKERS_AM(SM, Translation)\   131     _REGISTER_TRACKERS_AM(SM, Spline)\   133 #define _REGISTER_TRACKERS_SSM(SM) \   134     template class mtf::SM< mtf::LieHomography>;\   135     template class mtf::SM< mtf::CBH>;\   136     template class mtf::SM< mtf::SL3>;\   137     template class mtf::SM< mtf::Homography>;\   138     template class mtf::SM< mtf::Affine>;\   139     template class mtf::SM< mtf::LieAffine>;\   140     template class mtf::SM< mtf::ASRT>;\   141     template class mtf::SM< mtf::Similitude>;\   142     template class mtf::SM< mtf::Isometry>;\   143     template class mtf::SM< mtf::AST>;\   144     template class mtf::SM< mtf::IST>;\   145     template class mtf::SM< mtf::Translation>;\   146     template class mtf::SM< mtf::Spline>;   148 #define _REGISTER_TRACKERS_DIST(SM) \   149     template class mtf::SM< mtf::SSDBaseDist >;\   150     template class mtf::SM< mtf::SSDDist >;\   151     template class mtf::SM< mtf::SCVDist >;\   152     template class mtf::SM< mtf::RSCVDist >;\   153     template class mtf::SM< mtf::LSCVDist >;\   154     template class mtf::SM< mtf::KLDDist >;\   155     template class mtf::SM< mtf::LKLDDist >;\   156     template class mtf::SM< mtf::SPSSDist >;\   157     template class mtf::SM< mtf::SSIMDist >;\   158     template class mtf::SM< mtf::NCCDist >;\   159     template class mtf::SM< mtf::CCREDist >;\   160     template class mtf::SM< mtf::MIDist >;\   161     template class mtf::SM< mtf::RIUDist >;\   162     template class mtf::SM< mtf::NGFDist >;\   163     template class mtf::SM< mtf::SADDist >;   166 #define _REGISTER_HTRACKERS_AM(SM, SSM, SSM2) \   167     template class mtf::SM< mtf::SSD,  mtf::SSM,  mtf::SSM2 >;\   168     template class mtf::SM< mtf::NSSD,  mtf::SSM,  mtf::SSM2 >;\   169     template class mtf::SM< mtf::ZNCC,  mtf::SSM,  mtf::SSM2 >;\   170     template class mtf::SM< mtf::SCV,  mtf::SSM,  mtf::SSM2 >;\   171     template class mtf::SM< mtf::RSCV,  mtf::SSM,  mtf::SSM2 >;\   172     template class mtf::SM< mtf::LSCV,  mtf::SSM,  mtf::SSM2 >;\   173     template class mtf::SM< mtf::LRSCV,  mtf::SSM,  mtf::SSM2 >;\   174     template class mtf::SM< mtf::KLD,  mtf::SSM,  mtf::SSM2 >;\   175     template class mtf::SM< mtf::LKLD,  mtf::SSM,  mtf::SSM2 >;\   176     template class mtf::SM< mtf::SPSS,  mtf::SSM,  mtf::SSM2 >;\   177     template class mtf::SM< mtf::SSIM,  mtf::SSM,  mtf::SSM2 >;\   178     template class mtf::SM< mtf::NCC,  mtf::SSM,  mtf::SSM2 >;\   179     template class mtf::SM< mtf::CCRE,  mtf::SSM,  mtf::SSM2 >;\   180     template class mtf::SM< mtf::RIU,  mtf::SSM,  mtf::SSM2 >;\   181     template class mtf::SM< mtf::NGF,  mtf::SSM,  mtf::SSM2 >;\   182     template class mtf::SM< mtf::SAD,  mtf::SSM,  mtf::SSM2 >;\   183     template class mtf::SM< mtf::MCSSD,  mtf::SSM,  mtf::SSM2 >;\   184     template class mtf::SM< mtf::MCSCV,  mtf::SSM,  mtf::SSM2 >;\   185     template class mtf::SM< mtf::MCLSCV,  mtf::SSM,  mtf::SSM2 >;\   186     template class mtf::SM< mtf::MCRSCV,  mtf::SSM,  mtf::SSM2 >;\   187     template class mtf::SM< mtf::MCZNCC,  mtf::SSM,  mtf::SSM2 >;\   188     template class mtf::SM< mtf::MCNCC,  mtf::SSM,  mtf::SSM2 >;\   189     template class mtf::SM< mtf::MCMI,  mtf::SSM,  mtf::SSM2 >;\   190     template class mtf::SM< mtf::MCSSIM,  mtf::SSM,  mtf::SSM2 >;\   191     template class mtf::SM< mtf::MCSPSS,  mtf::SSM,  mtf::SSM2 >;\   192     template class mtf::SM< mtf::MCRIU,  mtf::SSM,  mtf::SSM2 >;\   193     template class mtf::SM< mtf::MCCCRE,  mtf::SSM,  mtf::SSM2 >;\   194     template class mtf::SM< mtf::MCSAD,  mtf::SSM,  mtf::SSM2 >;\   195     template class mtf::SM< mtf::MI,  mtf::SSM,  mtf::SSM2 >;   197 #define _REGISTER_HTRACKERS_SSM(SM, SSM) \   198     _REGISTER_HTRACKERS_AM(SM, SSM, LieHomography)\   199     _REGISTER_HTRACKERS_AM(SM, SSM, CBH)\   200     _REGISTER_HTRACKERS_AM(SM, SSM, SL3)\   201     _REGISTER_HTRACKERS_AM(SM, SSM, Homography)\   202     _REGISTER_HTRACKERS_AM(SM, SSM, Affine)\   203     _REGISTER_HTRACKERS_AM(SM, SSM, LieAffine)\   204     _REGISTER_HTRACKERS_AM(SM, SSM, ASRT)\   205     _REGISTER_HTRACKERS_AM(SM, SSM, Similitude)\   206     _REGISTER_HTRACKERS_AM(SM, SSM, Isometry)\   207     _REGISTER_HTRACKERS_AM(SM, SSM, AST)\   208     _REGISTER_HTRACKERS_AM(SM, SSM, IST)\   209     _REGISTER_HTRACKERS_AM(SM, SSM, Translation)\   210     _REGISTER_HTRACKERS_AM(SM, SSM, Spline)\   212 #define _REGISTER_HTRACKERS(SM) \   213     _REGISTER_HTRACKERS_SSM(SM, LieHomography)\   214     _REGISTER_HTRACKERS_SSM(SM, CBH)\   215     _REGISTER_HTRACKERS_SSM(SM, SL3)\   216     _REGISTER_HTRACKERS_SSM(SM, Homography)\   217     _REGISTER_HTRACKERS_SSM(SM, Affine)\   218     _REGISTER_HTRACKERS_SSM(SM, LieAffine)\   219     _REGISTER_HTRACKERS_SSM(SM, ASRT)\   220     _REGISTER_HTRACKERS_SSM(SM, Similitude)\   221     _REGISTER_HTRACKERS_SSM(SM, Isometry)\   222     _REGISTER_HTRACKERS_SSM(SM, AST)\   223     _REGISTER_HTRACKERS_SSM(SM, IST)\   224     _REGISTER_HTRACKERS_SSM(SM, Translation)\   225     _REGISTER_HTRACKERS_SSM(SM, Spline)\   227 #define _REGISTER_ESM_AM(HT, JT, SSM) \   228     template class mtf::FESM< mtf::SSD,  mtf::SSM, mtf::HT, mtf::JT >;\   229     template class mtf::FESM< mtf::NSSD,  mtf::SSM, mtf::HT, mtf::JT >;\   230     template class mtf::FESM< mtf::ZNCC,  mtf::SSM, mtf::HT, mtf::JT >;\   231     template class mtf::FESM< mtf::SCV,  mtf::SSM, mtf::HT, mtf::JT >;\   232     template class mtf::FESM< mtf::RSCV,  mtf::SSM, mtf::HT, mtf::JT >;\   233     template class mtf::FESM< mtf::LSCV,  mtf::SSM, mtf::HT, mtf::JT >;\   234     template class mtf::FESM< mtf::LRSCV,  mtf::SSM, mtf::HT, mtf::JT >;\   235     template class mtf::FESM< mtf::KLD,  mtf::SSM, mtf::HT, mtf::JT >;\   236     template class mtf::FESM< mtf::LKLD,  mtf::SSM, mtf::HT, mtf::JT >;\   237     template class mtf::FESM< mtf::SPSS,  mtf::SSM, mtf::HT, mtf::JT >;\   238     template class mtf::FESM< mtf::SSIM,  mtf::SSM, mtf::HT, mtf::JT >;\   239     template class mtf::FESM< mtf::NCC,  mtf::SSM, mtf::HT, mtf::JT >;\   240     template class mtf::FESM< mtf::CCRE,  mtf::SSM, mtf::HT, mtf::JT >;\   241     template class mtf::FESM< mtf::RIU,  mtf::SSM, mtf::HT, mtf::JT >;\   242     template class mtf::FESM< mtf::NGF,  mtf::SSM, mtf::HT, mtf::JT >;\   243     template class mtf::FESM< mtf::SAD,  mtf::SSM, mtf::HT, mtf::JT >;\   244     template class mtf::FESM< mtf::MCSSD,  mtf::SSM, mtf::HT, mtf::JT >;\   245     template class mtf::FESM< mtf::MCSCV,  mtf::SSM, mtf::HT, mtf::JT >;\   246     template class mtf::FESM< mtf::MCLSCV,  mtf::SSM, mtf::HT, mtf::JT >;\   247     template class mtf::FESM< mtf::MCRSCV,  mtf::SSM, mtf::HT, mtf::JT >;\   248     template class mtf::FESM< mtf::MCZNCC,  mtf::SSM, mtf::HT, mtf::JT >;\   249     template class mtf::FESM< mtf::MCNCC,  mtf::SSM, mtf::HT, mtf::JT >;\   250     template class mtf::FESM< mtf::MCMI,  mtf::SSM, mtf::HT, mtf::JT >;\   251     template class mtf::FESM< mtf::MCSSIM,  mtf::SSM, mtf::HT, mtf::JT >;\   252     template class mtf::FESM< mtf::MCSPSS,  mtf::SSM, mtf::HT, mtf::JT >;\   253     template class mtf::FESM< mtf::MCRIU,  mtf::SSM, mtf::HT, mtf::JT >;\   254     template class mtf::FESM< mtf::MCCCRE,  mtf::SSM, mtf::HT, mtf::JT >;\   255     template class mtf::FESM< mtf::MCSAD,  mtf::SSM, mtf::HT, mtf::JT >;\   256     template class mtf::FESM< mtf::MI,  mtf::SSM, mtf::HT, mtf::JT >;   258 #define _REGISTER_ESM(HT, JT) \   259     _REGISTER_ESM_AM(HT, JT, LieHomography)\   260     _REGISTER_ESM_AM(HT, JT, CBH)\   261     _REGISTER_ESM_AM(HT, JT, SL3)\   262     _REGISTER_ESM_AM(HT, JT, Homography)\   263     _REGISTER_ESM_AM(HT, JT, Affine)\   264     _REGISTER_ESM_AM(HT, JT, LieAffine)\   265     _REGISTER_ESM_AM(HT, JT, ASRT)\   266     _REGISTER_ESM_AM(HT, JT, Similitude)\   267     _REGISTER_ESM_AM(HT, JT, Isometry)\   268     _REGISTER_ESM_AM(HT, JT, AST)\   269     _REGISTER_ESM_AM(HT, JT, IST)\   270     _REGISTER_ESM_AM(HT, JT, Translation)\   271     _REGISTER_ESM_AM(HT, JT, Spline)\