]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/blobdiff - src/complexmat.cuh
complexmat.cu: Remove unused member foreign_data
[hercules2020/kcf.git] / src / complexmat.cuh
index cf1389a60c68843e56637051d89d23857d7b8b67..cf2e6ca2f0f3a89b74789932e47f13a267b41000 100644 (file)
@@ -7,7 +7,7 @@
 #include "cuda_runtime.h"
 #include "cufft.h"
 
-#include "cuda/cuda_error_check.cuh"
+#include "cuda_error_check.hpp"
 
 class ComplexMat {
   public:
@@ -15,23 +15,17 @@ class ComplexMat {
     uint rows;
     uint n_channels;
     uint n_scales = 1;
-    bool foreign_data = false;
 
     ComplexMat() : cols(0), rows(0), n_channels(0) {}
-    ComplexMat(uint _rows, uint _cols, uint _n_channels)
-        : cols(_cols), rows(_rows), n_channels(_n_channels)
-    {
-        CudaSafeCall(cudaMalloc(&p_data, n_channels * cols * rows * sizeof(cufftComplex)));
-    }
 
-    ComplexMat(uint _rows, uint _cols, uint _n_channels, uint _n_scales)
-        : cols(_cols), rows(_rows), n_channels(_n_channels), n_scales(_n_scales)
+    ComplexMat(uint _rows, uint _cols, uint _n_channels, uint _n_scales = 1)
+        : cols(_cols), rows(_rows), n_channels(_n_channels * _n_scales), n_scales(_n_scales)
     {
         CudaSafeCall(cudaMalloc(&p_data, n_channels * cols * rows * sizeof(cufftComplex)));
     }
 
-    ComplexMat(cv::Size size, uint _n_channels)
-        : cols(size.width), rows(size.height), n_channels(_n_channels)
+    ComplexMat(cv::Size size, uint _n_channels, uint _n_scales = 1)
+        : cols(size.width), rows(size.height), n_channels(_n_channels * _n_channels), n_scales(_n_scales)
     {
         CudaSafeCall(cudaMalloc(&p_data, n_channels * cols * rows * sizeof(cufftComplex)));
     }
@@ -49,7 +43,7 @@ class ComplexMat {
 
     ~ComplexMat()
     {
-        if (p_data != nullptr && !foreign_data) {
+        if (p_data != nullptr) {
             CudaSafeCall(cudaFree(p_data));
             p_data = nullptr;
         }
@@ -73,8 +67,7 @@ class ComplexMat {
     }
     // cv::Mat API compatibility
     cv::Size size() const { return cv::Size(cols, rows); }
-    int channels() { return n_channels; }
-    int channels() const { return n_channels; }
+    uint channels() const { return n_channels; }
 
     void sqr_norm(DynMem &result) const;