From 37921caad3c9a09bcdaba56453e35ab12dabb30f Mon Sep 17 00:00:00 2001 From: AlexeyAB Date: Mon, 24 Jul 2017 21:43:44 +0300 Subject: [PATCH] Fix that allows speedup usage of Yolo-DLL --- src/yolo_console_dll.cpp | 1 + src/yolo_v2_class.hpp | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/yolo_console_dll.cpp b/src/yolo_console_dll.cpp index 5172b5e3..b378b7f4 100644 --- a/src/yolo_console_dll.cpp +++ b/src/yolo_console_dll.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #define OPENCV diff --git a/src/yolo_v2_class.hpp b/src/yolo_v2_class.hpp index 34e220a6..8330dfc9 100644 --- a/src/yolo_v2_class.hpp +++ b/src/yolo_v2_class.hpp @@ -51,20 +51,20 @@ public: { if(mat.data == NULL) throw std::runtime_error("file not found"); - std::shared_ptr image_ptr(new image_t, [](image_t *img) { free_image(*img); delete img; }); - *image_ptr = mat_to_image(mat); + auto image_ptr = mat_to_image(mat); return detect(*image_ptr, thresh); } -private: - static image_t mat_to_image(cv::Mat img) + static std::shared_ptr mat_to_image(cv::Mat img) { + std::shared_ptr image_ptr(new image_t, [](image_t *img) { free_image(*img); delete img; }); std::shared_ptr ipl_small = std::make_shared(img); - image_t im_small = ipl_to_image(ipl_small.get()); - rgbgr_image(im_small); - return im_small; + *image_ptr = ipl_to_image(ipl_small.get()); + rgbgr_image(*image_ptr); + return image_ptr; } +private: static image_t ipl_to_image(IplImage* src) { unsigned char *data = (unsigned char *)src->imageData;