1 #ifndef MTF_COMPOSITE_SM_H 2 #define MTF_COMPOSITE_SM_H 4 #include "SearchMethod.h" 5 #include "mtf/Macros/common.h" 10 template<
class AM,
class SSM>
15 CompositeSM() : TrackerBase(), n_trackers(0), input_type(0){}
17 TrackerBase(), trackers(_trackers) {
18 n_trackers = trackers.size();
20 input_type = trackers[0]->inputType();
23 void setImage(
const cv::Mat &img)
override{
24 for(
int tracker_id = 0; tracker_id < n_trackers; ++tracker_id){
25 if(inputType() != HETEROGENEOUS_INPUT ||
26 img.type() == trackers[tracker_id]->inputType()){
27 trackers[tracker_id]->setImage(img);
32 int inputType()
const override{
return input_type; }
34 void setRegion(
const cv::Mat& corners)
override {
35 for(
int tracker_id = 1; tracker_id < n_trackers; ++tracker_id) {
36 trackers[tracker_id]->setRegion(corners);
39 virtual void setSPIMask(
const bool *_spi_mask) {
40 for(
int tracker_id = 0; tracker_id < n_trackers; ++tracker_id){
41 trackers[tracker_id]->setSPIMask(_spi_mask);
44 virtual void clearSPIMask() {
45 for(
int tracker_id = 0; tracker_id < n_trackers; ++tracker_id){
46 trackers[tracker_id]->clearSPIMask();
49 virtual void setInitStatus() {
50 for(
int tracker_id = 0; tracker_id < n_trackers; ++tracker_id){
51 trackers[tracker_id]->setInitStatus();
54 virtual void clearInitStatus() {
55 for(
int tracker_id = 0; tracker_id < n_trackers; ++tracker_id){
56 trackers[tracker_id]->clearInitStatus();
59 virtual bool supportsSPI() {
60 for(
int tracker_id = 0; tracker_id < n_trackers; ++tracker_id){
61 if(!trackers[tracker_id]->supportsSPI())
67 virtual AM& getAM() {
return trackers.back()->getAM(); }
68 virtual SSM& getSSM() {
return trackers.back()->getSSM(); }
70 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
73 const vector<SM*> trackers;
base class for all composite search methods
Definition: CompositeSM.h:11
Definition: SearchMethod.h:10
CompositeSM(const vector< SM * > _trackers)
Definition: CompositeSM.h:16