From 0dab894a5be9f7d10d85e89dea91d02c71bae84d Mon Sep 17 00:00:00 2001
From: Edmond Yoo <hj3yoo@uwaterloo.ca>
Date: Sun, 16 Sep 2018 03:24:45 +0000
Subject: [PATCH] Moving files from MTGCardDetector repo

---
 src/yolo_v2_class.hpp |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/yolo_v2_class.hpp b/src/yolo_v2_class.hpp
index 8626d97..199b1c9 100644
--- a/src/yolo_v2_class.hpp
+++ b/src/yolo_v2_class.hpp
@@ -1,13 +1,13 @@
 #pragma once
 #ifdef YOLODLL_EXPORTS
 #if defined(_MSC_VER)
-#define YOLODLL_API __declspec(dllexport) 
+#define YOLODLL_API __declspec(dllexport)
 #else
 #define YOLODLL_API __attribute__((visibility("default")))
 #endif
 #else
 #if defined(_MSC_VER)
-#define YOLODLL_API __declspec(dllimport) 
+#define YOLODLL_API __declspec(dllimport)
 #else
 #define YOLODLL_API
 #endif
@@ -49,6 +49,8 @@
 extern "C" YOLODLL_API int detect_image(const char *filename, bbox_t_container &container);
 extern "C" YOLODLL_API int detect_mat(const uint8_t* data, const size_t data_length, bbox_t_container &container);
 extern "C" YOLODLL_API int dispose();
+extern "C" YOLODLL_API int get_device_count();
+extern "C" YOLODLL_API int get_device_name(int gpu, char* deviceName);
 
 class Detector {
     std::shared_ptr<void> detector_gpu_ptr;
@@ -69,7 +71,7 @@
     YOLODLL_API int get_net_height() const;
     YOLODLL_API int get_net_color_depth() const;
 
-    YOLODLL_API std::vector<bbox_t> tracking_id(std::vector<bbox_t> cur_bbox_vec, bool const change_history = true, 
+    YOLODLL_API std::vector<bbox_t> tracking_id(std::vector<bbox_t> cur_bbox_vec, bool const change_history = true,
                                                 int const frames_story = 10, int const max_dist = 150);
 
     std::vector<bbox_t> detect_resized(image_t img, int init_w, int init_h, float thresh = 0.2, bool use_mean = false)
@@ -94,8 +96,14 @@
     std::shared_ptr<image_t> mat_to_image_resize(cv::Mat mat) const
     {
         if (mat.data == NULL) return std::shared_ptr<image_t>(NULL);
+
+        cv::Size network_size = cv::Size(get_net_width(), get_net_height());
         cv::Mat det_mat;
-        cv::resize(mat, det_mat, cv::Size(get_net_width(), get_net_height()));
+        if (mat.size() != network_size)
+            cv::resize(mat, det_mat, network_size);
+        else
+            det_mat = mat;  // only reference is copied
+
         return mat_to_image(det_mat);
     }
 
@@ -296,7 +304,7 @@
 
         std::vector<bbox_t> result_bbox_vec;
 
-        if (err_cpu.cols == cur_bbox_vec.size() && status_cpu.cols == cur_bbox_vec.size()) 
+        if (err_cpu.cols == cur_bbox_vec.size() && status_cpu.cols == cur_bbox_vec.size())
         {
             for (size_t i = 0; i < cur_bbox_vec.size(); ++i)
             {

--
Gitblit v1.10.0