From 2c711de013de00e06f006f959c0c8bc2d1a67f7e Mon Sep 17 00:00:00 2001
From: Tino Hager <tino.hager@nager.at>
Date: Sat, 14 Jul 2018 22:05:54 +0000
Subject: [PATCH] optimize performance detect

---
 src/yolo_v2_class.hpp |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/yolo_v2_class.hpp b/src/yolo_v2_class.hpp
index 8626d97..3dc9386 100644
--- a/src/yolo_v2_class.hpp
+++ b/src/yolo_v2_class.hpp
@@ -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;
@@ -94,9 +96,15 @@
     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::Mat det_mat;
-        cv::resize(mat, det_mat, cv::Size(get_net_width(), get_net_height()));
-        return mat_to_image(det_mat);
+
+        cv::Size s = mat.size();
+        if (get_net_width() != s.width || get_net_height() != s.height) {
+            cv::Mat det_mat;
+            cv::resize(mat, det_mat, cv::Size(get_net_width(), get_net_height()));
+            return mat_to_image(det_mat);
+        }
+
+        return mat_to_image(mat);
     }
 
     static std::shared_ptr<image_t> mat_to_image(cv::Mat img_src)

--
Gitblit v1.10.0