Explorar o código

修改构造和拷贝构造函数

leon hai 2 semanas
pai
achega
63ca7627cb
Modificáronse 3 ficheiros con 25 adicións e 3 borrados
  1. 11 3
      src/common/data.hpp
  2. 1 0
      src/main.cpp
  3. 13 0
      src/nodes/analyze/function/intrusion.hpp

+ 11 - 3
src/common/data.hpp

@@ -70,8 +70,13 @@ struct Box
         : left(left), top(top), right(right), bottom(bottom), score(score), class_id(class_id), label(label) {}
     Box(const Box& b) : 
         left(b.left), top(b.top), right(b.right), bottom(b.bottom), score(b.score), 
-        class_id(b.class_id), label(b.label), keypoints(b.keypoints), 
-        seg_mask(b.seg_mask.clone()) {}
+        class_id(b.class_id), label(b.label), keypoints(b.keypoints)
+        {
+            if (b.seg_mask.data) 
+            {
+                seg_mask = b.seg_mask.clone();
+            }
+        }
     Box(Box&& b) noexcept : 
         left(b.left), top(b.top), right(b.right), bottom(b.bottom), score(b.score), 
         class_id(b.class_id), label(std::move(b.label)), keypoints(std::move(b.keypoints)), 
@@ -86,7 +91,10 @@ struct Box
         class_id = b.class_id;
         label = b.label;
         keypoints = b.keypoints;
-        seg_mask  = b.seg_mask.clone();
+        if (b.seg_mask.data) 
+        {
+            seg_mask = b.seg_mask.clone();
+        } 
         return *this;
     }
 };

+ 1 - 0
src/main.cpp

@@ -50,3 +50,4 @@ int main(int argc , char* argv[])
 // 通过配置文件创建 pipeline
 // 置信度阈值修改
 // 设置电子围栏
+// 数据传输过程中使用显存指针

+ 13 - 0
src/nodes/analyze/function/intrusion.hpp

@@ -0,0 +1,13 @@
+#ifndef INSTRUSION_HPP__
+#define INSTRUSION_HPP__
+
+class Intrusion
+{
+public:
+    Intrusion() {}
+    ~Intrusion()  {};
+
+    void handle_data(std::shared_ptr<meta::MetaData>& meta_data) override;
+};
+
+#endif // INSTRUSION_HPP__