]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/blobdiff - src/threadctx.hpp
Convert ComplexMat to use DynMem class
[hercules2020/kcf.git] / src / threadctx.hpp
index f9db762dfba7487c7448427784e5f50a752460ff..2faceb1e1d5805bef0dfed6ba392b8a56c85b81d 100644 (file)
@@ -17,14 +17,14 @@ struct ThreadCtx {
   public:
     ThreadCtx(cv::Size roi, uint num_features
 #ifdef BIG_BATCH
-              , uint num_of_scales
+              , uint num_scales
 #else
               , double scale
 #endif
              )
         : roi(roi)
         , num_features(num_features)
-        , num_of_scales(IF_BIG_BATCH(num_of_scales, 1))
+        , num_scales(IF_BIG_BATCH(num_scales, 1))
 #ifndef BIG_BATCH
         , scale(scale)
 #endif
@@ -36,23 +36,25 @@ struct ThreadCtx {
 private:
     cv::Size roi;
     uint num_features;
-    uint num_of_scales;
+    uint num_scales;
     cv::Size freq_size = Fft::freq_size(roi);
 
+    MatScaleFeats patch_feats{num_scales, num_features, roi};
+    MatScaleFeats temp{num_scales, num_features, roi};
 
-    KCF_Tracker::GaussianCorrelation gaussian_correlation{num_of_scales, num_features, roi};
+    KCF_Tracker::GaussianCorrelation gaussian_correlation{num_scales, num_features, roi};
 
-    MatDynMem ifft2_res{roi, CV_32FC(int(num_features))};
+    MatScales ifft2_res{num_scales, roi};
 
-    ComplexMat zf{uint(freq_size.height), uint(freq_size.width), num_features, num_of_scales};
-    ComplexMat kzf{uint(freq_size.height), uint(freq_size.width), num_of_scales};
+    ComplexMat zf{uint(freq_size.height), uint(freq_size.width), num_features, num_scales};
+    ComplexMat kzf{uint(freq_size.height), uint(freq_size.width), 1, num_scales};
 
 public:
 #ifdef ASYNC
     std::future<void> async_res;
 #endif
 
-    MatScales response{num_of_scales, roi};
+    MatScales response{num_scales, roi};
 
     struct Max {
         cv::Point2i loc;
@@ -60,7 +62,7 @@ public:
     };
 
 #ifdef BIG_BATCH
-    std::vector<Max> max = std::vector<Max>(num_of_scales);
+    std::vector<Max> max = std::vector<Max>(num_scales);
 #else
     Max max;
     const double scale;