From a30dd9ee53efa34e62312ab8e69997b858d7440e Mon Sep 17 00:00:00 2001 From: "bob.pan" Date: Tue, 7 Sep 2021 10:20:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=A8=A1=E6=9D=BF=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=8A=A0=E8=BD=BD=E4=BF=9D=E6=8A=A4=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=E8=BF=87=E6=96=87=E4=BB=B6=E5=8A=A0=E8=BD=BD=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=EF=BC=8C=E5=8D=B3=E5=AF=B9=E8=AF=A5=E5=9E=8B=E5=8F=B7=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E9=87=8D=E6=96=B0=E8=AE=AD=E7=BB=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ImageCompare/ImageCompareModel.cpp | 179 +++++++++++++------------ 1 file changed, 92 insertions(+), 87 deletions(-) diff --git a/src/ImageCompare/ImageCompareModel.cpp b/src/ImageCompare/ImageCompareModel.cpp index 76b37d5..4286771 100644 --- a/src/ImageCompare/ImageCompareModel.cpp +++ b/src/ImageCompare/ImageCompareModel.cpp @@ -295,101 +295,106 @@ bool ImageCompareModel::save2file(string filePath) bool ImageCompareModel::readFromFile(string filePath) { - FileStorage fs(filePath, FileStorage::READ); - if (!fs.isOpened()) - { - return false; - } + try { + FileStorage fs(filePath, FileStorage::READ); + if (!fs.isOpened()) + { + return false; + } - fs[IMGCMP_STR_ALIGN_BASE_IMAGE] >> mAlignBaseImg; - fs[IMGCMP_STR_COMPARE_BASE_IMAGE] >> mCompareBaseImg; - fs[IMGCMP_STR_WEIGHT_MAT] >> mWeightMat; - fs[IMGCMP_STR_INSIDE_AVE_IMAGE] >> mInSideBaseImg; - fs[IMGCMP_STR_INSIDE_COMP_AVE_IMAGE] >> mInsideCompareBaseImg; - fs[IMGCMP_STR_INSIDE_WEIGHT] >> mInsideWeightMat; - fs[IMGCMP_STR_INSIDE_TEMPL] >> innerTempl; - mMatchValScale = (double)fs[IMGCMP_STR_MATCH_VAL_SCALE]; - - FileNode fn = fs[IMGCMP_STR_TARGET_MEAN_VAL]; - if (!fn.empty()) - { - mTargetMeanVal = (int)fn; - } + fs[IMGCMP_STR_ALIGN_BASE_IMAGE] >> mAlignBaseImg; + fs[IMGCMP_STR_COMPARE_BASE_IMAGE] >> mCompareBaseImg; + fs[IMGCMP_STR_WEIGHT_MAT] >> mWeightMat; + fs[IMGCMP_STR_INSIDE_AVE_IMAGE] >> mInSideBaseImg; + fs[IMGCMP_STR_INSIDE_COMP_AVE_IMAGE] >> mInsideCompareBaseImg; + fs[IMGCMP_STR_INSIDE_WEIGHT] >> mInsideWeightMat; + fs[IMGCMP_STR_INSIDE_TEMPL] >> innerTempl; + mMatchValScale = (double)fs[IMGCMP_STR_MATCH_VAL_SCALE]; + + FileNode fn = fs[IMGCMP_STR_TARGET_MEAN_VAL]; + if (!fn.empty()) + { + mTargetMeanVal = (int)fn; + } - fn = fs[IMGCMP_STR_TARGET_STDDEV_VAL]; - if (!fn.empty()) - { - mTargetStddevVal = (int)fn; - } + fn = fs[IMGCMP_STR_TARGET_STDDEV_VAL]; + if (!fn.empty()) + { + mTargetStddevVal = (int)fn; + } - fn = fs[IMGCMP_STR_REPEAT_NUM]; - if (!fn.empty()) - { - mRepeatNum = (int)fn; - } - else - { - //mRepeatNum = computeRepeatNum(); - } + fn = fs[IMGCMP_STR_REPEAT_NUM]; + if (!fn.empty()) + { + mRepeatNum = (int)fn; + } + else + { + //mRepeatNum = computeRepeatNum(); + } - fn = fs[IMGCMP_STR_NAME]; - if (!fn.empty()) - { - mName = (string)fn; - } + fn = fs[IMGCMP_STR_NAME]; + if (!fn.empty()) + { + mName = (string)fn; + } - fn = fs[IMGCMP_STR_TRUE_SAMPLE_DIS_MEAN]; - if (!fn.empty()) - { - mTrueSampleDisMean = (double)fn; - } - fn = fs[IMGCMP_STR_TRUE_SAMPLE_DIS_STDDEV]; - if (!fn.empty()) - { - mTrueSampleDisStddev = (double)fn; - } - fn = fs[IMGCMP_STR_TRUE_SAMPLE_DIS_MIN]; - if (!fn.empty()) - { - mTrueSampleDisMin = (double)fn; - } - fn = fs[IMGCMP_STR_TRUE_SAMPLE_DIS_MAX]; - if (!fn.empty()) - { - mTrueSampleDisMax = (double)fn; - } - fn = fs[IMGCMP_STR_FALSE_SAMPLE_MIN_DIS]; - if (!fn.empty()) - { - setFalseSampleMinDis((double)fn); - } - fn = fs[IMGCMP_STR_DIS_THRE]; - if (!fn.empty()) - { - mDisThre = (double)fn; - } - - fn = fs[IMGCMP_STR_AVER_DIAMETER]; - if (!fn.empty()) - { - meanDiameter = (int)fn; - } + fn = fs[IMGCMP_STR_TRUE_SAMPLE_DIS_MEAN]; + if (!fn.empty()) + { + mTrueSampleDisMean = (double)fn; + } + fn = fs[IMGCMP_STR_TRUE_SAMPLE_DIS_STDDEV]; + if (!fn.empty()) + { + mTrueSampleDisStddev = (double)fn; + } + fn = fs[IMGCMP_STR_TRUE_SAMPLE_DIS_MIN]; + if (!fn.empty()) + { + mTrueSampleDisMin = (double)fn; + } + fn = fs[IMGCMP_STR_TRUE_SAMPLE_DIS_MAX]; + if (!fn.empty()) + { + mTrueSampleDisMax = (double)fn; + } + fn = fs[IMGCMP_STR_FALSE_SAMPLE_MIN_DIS]; + if (!fn.empty()) + { + setFalseSampleMinDis((double)fn); + } + fn = fs[IMGCMP_STR_DIS_THRE]; + if (!fn.empty()) + { + mDisThre = (double)fn; + } - fn = fs[IMGCMP_STR_INSIDE_RADIUS]; - if (!fn.empty()) - { - rInner = (float)fn; - } - fn = fs[IMGCMP_STR_INSIDE_CIRCLE_NUM]; - if (!fn.empty()) - { - mInnerCircleNum = (double)fn; - } - setFilePath(filePath); + fn = fs[IMGCMP_STR_AVER_DIAMETER]; + if (!fn.empty()) + { + meanDiameter = (int)fn; + } - genMask(); + fn = fs[IMGCMP_STR_INSIDE_RADIUS]; + if (!fn.empty()) + { + rInner = (float)fn; + } + fn = fs[IMGCMP_STR_INSIDE_CIRCLE_NUM]; + if (!fn.empty()) + { + mInnerCircleNum = (double)fn; + } + setFilePath(filePath); - return true; + genMask(); + + return true; + } + catch (std::exception &e) { + return false; + } } void ImageCompareModel::preProcessImage(Mat& img, Mat &insideImg) const