From 3be4eee85b49c2e69b98d0a79950f47cc5c594ab Mon Sep 17 00:00:00 2001 From: MistEO Date: Wed, 25 Aug 2021 13:05:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dadb=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E5=AE=BD=E5=B1=8F=E4=B8=8B=E7=9A=84=E7=BC=A9=E6=94=BE?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MeoAssistance/AbstractTask.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/MeoAssistance/AbstractTask.cpp b/MeoAssistance/AbstractTask.cpp index 892bcc5e55..9a63825a61 100644 --- a/MeoAssistance/AbstractTask.cpp +++ b/MeoAssistance/AbstractTask.cpp @@ -59,16 +59,19 @@ cv::Mat AbstractTask::get_format_image(bool raw) double cur_ratio = static_cast(raw_image.cols) / static_cast(raw_image.rows); cv::Size scale_size; double scale = 0.0; - if (cur_ratio >= DefaultRatio) { // 说明是宽屏或默认16:9,按照高度计算缩放 - scale_size = cv::Size(cur_ratio * Configer::DefaultWindowWidth, Configer::DefaultWindowHeight); + if (cur_ratio >= DefaultRatio // 说明是宽屏或默认16:9,按照高度计算缩放 + || std::fabs(cur_ratio - DefaultRatio) < DoubleDiff) + { + scale_size = cv::Size(cur_ratio * Configer::DefaultWindowHeight, Configer::DefaultWindowHeight); scale = static_cast(raw_image.rows) / static_cast(Configer::DefaultWindowHeight); } - else { // 否则可能是偏正方形的屏幕,按宽度计算 - scale_size = cv::Size(Configer::DefaultWindowWidth, cur_ratio * Configer::DefaultWindowHeight); + else + { // 否则可能是偏正方形的屏幕,按宽度计算 + scale_size = cv::Size(Configer::DefaultWindowWidth, Configer::DefaultWindowWidth / cur_ratio); scale = static_cast(raw_image.cols) / static_cast(Configer::DefaultWindowWidth); } cv::Mat resize_mat; - cv::resize(raw_image, resize_mat, cv::Size(Configer::DefaultWindowWidth, Configer::DefaultWindowHeight)); + cv::resize(raw_image, resize_mat, scale_size); set_control_scale(scale); return resize_mat;