From 8c2b96df6187a89ae7df28ad63622835a6e26897 Mon Sep 17 00:00:00 2001 From: lltcggie Date: Sun, 6 Dec 2015 03:45:08 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=8E=E3=82=A4=E3=82=BA=E9=99=A4=E5=8E=BB?= =?UTF-8?q?=E3=83=A2=E3=83=BC=E3=83=89=E3=81=A7=E8=87=B4=E5=91=BD=E7=9A=84?= =?UTF-8?q?=E3=81=AA=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=8C=E7=99=BA=E7=94=9F?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/waifu2x.cpp | 15 +++++++++------ common/waifu2x.h | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/common/waifu2x.cpp b/common/waifu2x.cpp index 01001d9..93afec2 100644 --- a/common/waifu2x.cpp +++ b/common/waifu2x.cpp @@ -1293,7 +1293,7 @@ Waifu2x::eWaifu2xError Waifu2x::Reconstruct(const bool isReconstructNoise, const return eWaifu2xError_OK; } -Waifu2x::eWaifu2xError Waifu2x::AfterReconstructFloatMatProcess(const waifu2xCancelFunc cancel_func, const cv::Mat &floatim, const cv::Mat &in, cv::Mat &out) +Waifu2x::eWaifu2xError Waifu2x::AfterReconstructFloatMatProcess(const bool isReconstructScale, const waifu2xCancelFunc cancel_func, const cv::Mat &floatim, const cv::Mat &in, cv::Mat &out) { cv::Size_ image_size = in.size(); @@ -1329,7 +1329,7 @@ Waifu2x::eWaifu2xError Waifu2x::AfterReconstructFloatMatProcess(const waifu2xCan const double shrinkRatio = scale_ratio / std::pow(2.0, (double)scale2); cv::Mat alpha; - if (floatim.channels() == 4 && scale2 >= 1) + if (floatim.channels() == 4 && isReconstructScale) { std::vector planes; cv::split(floatim, planes); @@ -1357,9 +1357,12 @@ Waifu2x::eWaifu2xError Waifu2x::AfterReconstructFloatMatProcess(const waifu2xCan cv::merge(planes, process_image); } - const cv::Size_ ns(image_size.width * shrinkRatio, image_size.height * shrinkRatio); - if (image_size.width != ns.width || image_size.height != ns.height) - cv::resize(process_image, process_image, ns, 0.0, 0.0, cv::INTER_LINEAR); + if (isReconstructScale) + { + const cv::Size_ ns(image_size.width * shrinkRatio, image_size.height * shrinkRatio); + if (image_size.width != ns.width || image_size.height != ns.height) + cv::resize(process_image, process_image, ns, 0.0, 0.0, cv::INTER_LINEAR); + } out = process_image; @@ -1392,7 +1395,7 @@ Waifu2x::eWaifu2xError Waifu2x::waifu2x(const std::string &input_file, const std return ret; cv::Mat process_image; - ret = AfterReconstructFloatMatProcess(cancel_func, float_image, reconstruct_image, process_image); + ret = AfterReconstructFloatMatProcess(isReconstructScale, cancel_func, float_image, reconstruct_image, process_image); if (ret != eWaifu2xError_OK) return ret; diff --git a/common/waifu2x.h b/common/waifu2x.h index 2950754..e6ac4fc 100644 --- a/common/waifu2x.h +++ b/common/waifu2x.h @@ -111,7 +111,7 @@ private: eWaifu2xError BeforeReconstructFloatMatProcess(const cv::Mat &in, cv::Mat &out, bool &convertBGRflag); eWaifu2xError ReconstructFloatMat(const bool isReconstructNoise, const bool isReconstructScale, const waifu2xCancelFunc cancel_func, const cv::Mat &in, cv::Mat &out); eWaifu2xError Reconstruct(const bool isReconstructNoise, const bool isReconstructScale, const waifu2xCancelFunc cancel_func, const cv::Mat &in, cv::Mat &out); - eWaifu2xError AfterReconstructFloatMatProcess(const waifu2xCancelFunc cancel_func, const cv::Mat &floatim, const cv::Mat &in, cv::Mat &out); + eWaifu2xError AfterReconstructFloatMatProcess(const bool isReconstructScale, const waifu2xCancelFunc cancel_func, const cv::Mat &floatim, const cv::Mat &in, cv::Mat &out); public: Waifu2x();