From 824164da5baeb5edba446305f3d5ca7cdfc624c2 Mon Sep 17 00:00:00 2001 From: wangxx1809 Date: Fri, 31 May 2024 11:49:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=85=8D=E7=BD=AE=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PrintS/Communication/ServoManager.cpp | 12 +- PrintS/Config/ConfigManager.cpp | 8 +- PrintS/Config/ConfigManager.h | 4 +- PrintS/Config/bean/CameraCalibrationCfg.cpp | 191 +++++----- PrintS/Config/bean/CameraCalibrationCfg.h | 101 +++--- PrintS/Config/dao/BaseConfigDao.cpp | 180 +++++----- PrintS/DataManage/DataHandle.cpp | 13 +- PrintS/DataManage/RWData.h | 2 + PrintS/RecoatCheck/RecoatCheck.cpp | 90 ++--- PrintS/additional/Calibration.cpp | 374 ++++++++++---------- PrintS/job/MetaData.h | 6 +- PrintS/output/Release/log/2024.hbd | Bin 159744 -> 159744 bytes TestClient/DataManage/DataHandle.cpp | 32 +- TestClient/DataManage/RWData.h | 3 +- 14 files changed, 512 insertions(+), 504 deletions(-) diff --git a/PrintS/Communication/ServoManager.cpp b/PrintS/Communication/ServoManager.cpp index 0720157..696fe2c 100644 --- a/PrintS/Communication/ServoManager.cpp +++ b/PrintS/Communication/ServoManager.cpp @@ -126,16 +126,16 @@ void ServoManager::StopLog(AxisLog* lc) EnterCriticalSection(&m_LogLoadCS); m_IsLogReady = false; if (!m_MoldStat.logLoadList.empty()) { - lc->m_MoldDataCount = m_MoldStat.logLoadList.size(); + lc->m_MoldDataCount =(uint32_t) m_MoldStat.logLoadList.size(); lc->m_MoldData = new float[lc->m_MoldDataCount]; } - int moldFlag = 0; + uint32_t moldFlag = 0; for (list::iterator it = m_MoldStat.logLoadList.begin(); it != m_MoldStat.logLoadList.end(); it++) { if (moldFlag < lc->m_MoldDataCount)lc->m_MoldData[moldFlag++] = (*it); } if (!m_LoadStat.logLoadList.empty()) { - lc->m_LoadDataCount = m_LoadStat.logLoadList.size(); + lc->m_LoadDataCount = (uint32_t)m_LoadStat.logLoadList.size(); lc->m_LoadData = new float[lc->m_LoadDataCount]; } int powderFlag = 0; @@ -144,10 +144,10 @@ void ServoManager::StopLog(AxisLog* lc) } if (!m_ArmStat.logLoadList.empty()) { - lc->m_ArmDataCount = m_ArmStat.logLoadList.size(); + lc->m_ArmDataCount = (uint32_t)m_ArmStat.logLoadList.size(); lc->m_ArmData = new float[lc->m_ArmDataCount]; } - int armFlag = 0; + uint32_t armFlag = 0; for (list::iterator it = m_ArmStat.logLoadList.begin(); it != m_ArmStat.logLoadList.end(); it++) { if (armFlag < lc->m_ArmDataCount)lc->m_ArmData[armFlag++] = (*it); } @@ -156,7 +156,7 @@ void ServoManager::StopLog(AxisLog* lc) lc->m_SupplyDataCount = m_SupplyStat.logLoadList.size(); lc->m_SupplyData = new float[lc->m_SupplyDataCount]; } - int supplyFlag = 0; + uint32_t supplyFlag = 0; for (list::iterator it = m_SupplyStat.logLoadList.begin(); it != m_SupplyStat.logLoadList.end(); it++) { if (supplyFlag < lc->m_SupplyDataCount)lc->m_SupplyData[supplyFlag++] = (*it); } diff --git a/PrintS/Config/ConfigManager.cpp b/PrintS/Config/ConfigManager.cpp index ecc0e07..2c1970e 100644 --- a/PrintS/Config/ConfigManager.cpp +++ b/PrintS/Config/ConfigManager.cpp @@ -467,8 +467,7 @@ void ConfigManager::SendCfgToClients() { m_MachineCfg.SendToClients(MACHINECFGPARAM); m_FavoriteCfg.SendToClients(FAVORITECFGPARAM); - - + m_CameraCalibrationCfg.SendToClients(CAMERACALIBRATIONCFGPARAM); m_MoldCfg->SendToClients(MOLDCFGPARAM); m_LoadCfg->SendToClients(LOADCFGPARAM); @@ -476,7 +475,6 @@ void ConfigManager::SendCfgToClients() { m_SupplyCfg->SendToClients(SUPPLYCFGPARAM); m_CleanCfg->SendToClients(CLEANCFGPARAM); m_EleCfg->SendToClients(ELECFGPARAM); - } void ConfigManager::UpdateCfg(const ReadData& rd) { @@ -494,6 +492,10 @@ void ConfigManager::UpdateCfg(const ReadData& rd) { m_InfraredTempCfg.Update(rd, INFRAREDTEMPCFGPARAM); break; case MACHINECFG: m_MachineCfg.Update(rd, MACHINECFGPARAM); break; + case FAVORITECFG: + m_FavoriteCfg.UpdateSub(rd); break; + case CAMERACALIBRATIONCFG: + m_CameraCalibrationCfg.Update(rd, CAMERACALIBRATIONCFGPARAM); break; default: break; } diff --git a/PrintS/Config/ConfigManager.h b/PrintS/Config/ConfigManager.h index 0f8f832..c88c79a 100644 --- a/PrintS/Config/ConfigManager.h +++ b/PrintS/Config/ConfigManager.h @@ -107,8 +107,8 @@ public: //vector *GetMatchLaser() { return &m_pLaserCfgDao->m_MatchLaser; } //LaserCfgDao* GetLaserCfgDao() { return m_pLaserCfgDao; } FavoriteCfg* GetFavoriteCfg() { return &m_FavoriteCfg; } //已传 - FixPointDao* GetFixPointDao() { return m_ScannerControlCfgDao->GetFixPointDao(); } - CameraCalibrationCfg* GetCameraCalibrationCfg() { return &m_CameraCalibrationCfg; } + FixPointDao* GetFixPointDao() { return m_ScannerControlCfgDao->GetFixPointDao(); } //传 + CameraCalibrationCfg* GetCameraCalibrationCfg() { return &m_CameraCalibrationCfg; } //传 void SaveCameraCalibrationCfg() { SQLite::Transaction transaction(*m_pDB); m_pBaseConfigDao->SaveCameraCalibrationCfg(m_CameraCalibrationCfg); diff --git a/PrintS/Config/bean/CameraCalibrationCfg.cpp b/PrintS/Config/bean/CameraCalibrationCfg.cpp index 74e55f8..560fc8c 100644 --- a/PrintS/Config/bean/CameraCalibrationCfg.cpp +++ b/PrintS/Config/bean/CameraCalibrationCfg.cpp @@ -1,59 +1,58 @@ -#include "CameraCalibrationCfg.h" +#include "CameraCalibrationCfg.h" #include "BaseConfig.h" #include "../../utils/StringHelper.h" CameraCalibrationCfg::CameraCalibrationCfg() + : m_HadCalibration(new BoolData("HadCalibration")) + , m_CalibrationHPoints(new UIntData("CalibrationHPoints", u8"标定横向角点数",26)) + , m_CalibrationVPoints(new UIntData("CalibrationVPoints", u8"标定纵向角点数",27)) + , m_CalibrationGridHSize(new UIntData("CalibrationGridHSize", u8"标定方格横向尺寸",10)) + , m_CalibrationGridVSize(new UIntData("CalibrationGridVSize", u8"标定方格纵向尺寸",10)) + , m_CameraMatrix00(new DoubleData("CameraMatrix00")) + , m_CameraMatrix01(new DoubleData("CameraMatrix01")) + , m_CameraMatrix02(new DoubleData("CameraMatrix02")) + , m_CameraMatrix10(new DoubleData("CameraMatrix10")) + , m_CameraMatrix11(new DoubleData("CameraMatrix11")) + , m_CameraMatrix12(new DoubleData("CameraMatrix12")) + , m_CameraMatrix20(new DoubleData("CameraMatrix20")) + , m_CameraMatrix21(new DoubleData("CameraMatrix21")) + , m_CameraMatrix22(new DoubleData("CameraMatrix22")) + , m_DistCoeffs0(new DoubleData("DistCoeffs0")) + , m_DistCoeffs1(new DoubleData("DistCoeffs1")) + , m_DistCoeffs2(new DoubleData("DistCoeffs2")) + , m_DistCoeffs3(new DoubleData("DistCoeffs3")) + , m_DistCoeffs4(new DoubleData("DistCoeffs4")) + , m_FittingMagX(new UIntData("FittingMagX", u8"放大倍数",20)) + , m_ImageTopLeftX(new IntData("ImageTopLeftX")) + , m_ImageTopLeftY(new IntData("ImageTopLeftY")) + , m_ImageTopRightX(new IntData("ImageTopRightX")) + , m_ImageTopRightY(new IntData("ImageTopRightY")) + , m_ImageBottomLeftX(new IntData("ImageBottomLeftX")) + , m_ImageBottomLeftY(new IntData("ImageBottomLeftY")) + , m_ImageBottomRightX(new IntData("ImageBottomRightX")) + , m_ImageBottomRightY(new IntData("ImageBottomRightY")) + , m_PlatformTopLeftX(new IntData("PlatformTopLeftX")) + , m_PlatformTopLeftY(new IntData("PlatformTopLeftY")) + , m_PlatformTopRightX(new IntData("PlatformTopRightX")) + , m_PlatformTopRightY(new IntData("PlatformTopRightY")) + , m_PlatformBottomLeftX(new IntData("PlatformBottomLeftX")) + , m_PlatformBottomLeftY(new IntData("PlatformBottomLeftY")) + , m_PlatformBottomRightX(new IntData("PlatformBottomRightX")) + , m_PlatformBottomRightY(new IntData("PlatformBottomRightY")) + , m_BinaryThresholdOffset(new IntData("BinaryThresholdOffset", u8"", 25)) + , m_GrayRef(new IntData("GrayRef", u8"", 145)) + , m_MagnifyScale(new UIntData("MagnifyScale", u8"", 10)) + , m_MatchRatio(new FloatData("MatchRatio",u8"", 0.9f)) + , m_BlackFace(new BoolData("BlackFace", u8"", true)) + , m_ShowBinImage(new BoolData("ShowBinImage")) + , m_ShowCorners(new BoolData("ShowCorners")) + , m_ShowAssist(new BoolData("ShowAssist")) + , m_CoverImageJoin(new BoolData("CoverImageJoin")) { - m_HadCalibration = false; - m_CalibrationHPoints = 26; - m_CalibrationVPoints = 27; - - m_CalibrationGridHSize = 10; - m_CalibrationGridVSize = 10; - m_CameraMatrix00=0.0; - m_CameraMatrix01=0.0; - m_CameraMatrix02=0.0; - m_CameraMatrix10=0.0; - m_CameraMatrix11=0.0; - m_CameraMatrix12=0.0; - m_CameraMatrix20=0.0; - m_CameraMatrix21=0.0; - m_CameraMatrix22=0.0; - - m_DistCoeffs0=0.0; - m_DistCoeffs1=0.0; - m_DistCoeffs2=0.0; - m_DistCoeffs3=0.0; - m_DistCoeffs4=0.0; - - m_FittingMagX = 20; - - m_ImageTopLeftX=0; - m_ImageTopLeftY= 0; - m_ImageTopRightX= 0; - m_ImageTopRightY= 0; - m_ImageBottomLeftX= 0; - m_ImageBottomLeftY= 0; - m_ImageBottomRightX= 0; - m_ImageBottomRightY= 0; - - m_PlatformTopLeftX=0; - m_PlatformTopLeftY=0; - m_PlatformTopRightX=0; - m_PlatformTopRightY=0; - m_PlatformBottomLeftX=0; - m_PlatformBottomLeftY=0; - m_PlatformBottomRightX=0; - m_PlatformBottomRightY=0; - - m_GrayRef = 145; - m_BinaryThresholdOffset = 25; - m_MagnifyScale = 10; - m_MatchRatio = 0.9f; - m_BlackFace = true; - m_ShowBinImage = false; - m_ShowAssist = false; - m_CoverImageJoin = false; + size_t ptrSize = sizeof(nullptr); //指针大小 + void* startPtr = &m_startFlag + 1; + size_t count = ((size_t)&m_endFlag - (size_t)startPtr) / ptrSize; + InsertMp(startPtr, count); } @@ -78,271 +77,271 @@ void CameraCalibrationCfg::GetUpdateSql(vector& ups) sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - m_HadCalibration?"1":"0", + m_HadCalibration->GetValue() ? "1" : "0", strtail.c_str(), CameraCalibrationCfg::FIELD_HAD_CALIBRATION.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_CalibrationHPoints).c_str(), + to_string(m_CalibrationHPoints->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_H_POINTS.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_CalibrationVPoints).c_str(), + to_string(m_CalibrationVPoints->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_V_POINTS.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_CalibrationGridHSize).c_str(), + to_string(m_CalibrationGridHSize->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_GRID_H_SIZE.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_CalibrationGridVSize).c_str(), + to_string(m_CalibrationGridVSize->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_GRID_V_SIZE.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_CameraMatrix00).c_str(), + StringHelper::Double2String(m_CameraMatrix00->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_00.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_CameraMatrix01).c_str(), + StringHelper::Double2String(m_CameraMatrix01->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_01.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_CameraMatrix02).c_str(), + StringHelper::Double2String(m_CameraMatrix02->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_02.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_CameraMatrix10).c_str(), + StringHelper::Double2String(m_CameraMatrix10->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_10.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_CameraMatrix11).c_str(), + StringHelper::Double2String(m_CameraMatrix11->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_11.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_CameraMatrix12).c_str(), + StringHelper::Double2String(m_CameraMatrix12->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_12.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_CameraMatrix20).c_str(), + StringHelper::Double2String(m_CameraMatrix20->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_20.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_CameraMatrix21).c_str(), + StringHelper::Double2String(m_CameraMatrix21->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_21.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_CameraMatrix22).c_str(), + StringHelper::Double2String(m_CameraMatrix22->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_22.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_DistCoeffs0,"%.20f").c_str(), + StringHelper::Double2String(m_DistCoeffs0->GetValue(),"%.20f").c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_0.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_DistCoeffs1, "%.20f").c_str(), + StringHelper::Double2String(m_DistCoeffs1->GetValue(), "%.20f").c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_1.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_DistCoeffs2, "%.20f").c_str(), + StringHelper::Double2String(m_DistCoeffs2->GetValue(), "%.20f").c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_2.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_DistCoeffs3, "%.20f").c_str(), + StringHelper::Double2String(m_DistCoeffs3->GetValue(), "%.20f").c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_3.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - StringHelper::Double2String(m_DistCoeffs4, "%.20f").c_str(), + StringHelper::Double2String(m_DistCoeffs4->GetValue(), "%.20f").c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_4.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_FittingMagX).c_str(), + to_string(m_FittingMagX->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_FITTING_MAG_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_ImageTopLeftX).c_str(), + to_string(m_ImageTopLeftX->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_ImageTopLeftY).c_str(), + to_string(m_ImageTopLeftY->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_ImageTopRightX).c_str(), + to_string(m_ImageTopRightX->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_ImageTopRightY).c_str(), + to_string(m_ImageTopRightY->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_ImageBottomLeftX).c_str(), + to_string(m_ImageBottomLeftX->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_ImageBottomLeftY).c_str(), + to_string(m_ImageBottomLeftY->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_ImageBottomRightX).c_str(), + to_string(m_ImageBottomRightX->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_ImageBottomRightY).c_str(), + to_string(m_ImageBottomRightY->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_PlatformTopLeftX).c_str(), + to_string(m_PlatformTopLeftX->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_PlatformTopLeftY).c_str(), + to_string(m_PlatformTopLeftY->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_PlatformTopRightX).c_str(), + to_string(m_PlatformTopRightX->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_PlatformTopRightY).c_str(), + to_string(m_PlatformTopRightY->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_PlatformBottomLeftX).c_str(), + to_string(m_PlatformBottomLeftX->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_PlatformBottomLeftY).c_str(), + to_string(m_PlatformBottomLeftY->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_PlatformBottomRightX).c_str(), + to_string(m_PlatformBottomRightX->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_PlatformBottomRightY).c_str(), + to_string(m_PlatformBottomRightY->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_BinaryThresholdOffset).c_str(), + to_string(m_BinaryThresholdOffset->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_BINARY_THRESHOLD_OFFSET.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_GrayRef).c_str(), + to_string(m_GrayRef->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_GRAY_REF.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_MagnifyScale).c_str(), + to_string(m_MagnifyScale->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_MAGNIFY_SCALE.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - to_string(m_MatchRatio).c_str(), + to_string(m_MatchRatio->GetValue()).c_str(), strtail.c_str(), CameraCalibrationCfg::FIELD_MATCH_RATIO.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - m_BlackFace?"1":"0", + m_BlackFace->GetValue() ?"1":"0", strtail.c_str(), CameraCalibrationCfg::FIELD_BLACK_FACE.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - m_ShowBinImage ? "1" : "0", + m_ShowBinImage->GetValue() ? "1" : "0", strtail.c_str(), CameraCalibrationCfg::FIELD_SHOW_BIN_IMAGE.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - m_ShowCorners ? "1" : "0", + m_ShowCorners->GetValue() ? "1" : "0", strtail.c_str(), CameraCalibrationCfg::FIELD_SHOW_CORNERS.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - m_ShowAssist ? "1" : "0", + m_ShowAssist->GetValue() ? "1" : "0", strtail.c_str(), CameraCalibrationCfg::FIELD_SHOW_ASSIST.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), - m_CoverImageJoin ? "1" : "0", + m_CoverImageJoin->GetValue() ? "1" : "0", strtail.c_str(), CameraCalibrationCfg::FIELD_COVER_IMAGE_JOIN.c_str()); ups.push_back(buffer); } diff --git a/PrintS/Config/bean/CameraCalibrationCfg.h b/PrintS/Config/bean/CameraCalibrationCfg.h index b9755e2..7ad5589 100644 --- a/PrintS/Config/bean/CameraCalibrationCfg.h +++ b/PrintS/Config/bean/CameraCalibrationCfg.h @@ -1,9 +1,12 @@ -#pragma once +#pragma once #include #include +#include "../Controller/Base.h" using namespace std; -class CameraCalibrationCfg + +#pragma pack(1) +class CameraCalibrationCfg : public Base { public: CameraCalibrationCfg(); @@ -11,58 +14,60 @@ public: void GetUpdateSql(vector& ups); public: - bool m_HadCalibration; + char m_startFlag; + BoolData* m_HadCalibration; - unsigned int m_CalibrationHPoints; //궨ǵ - unsigned int m_CalibrationVPoints; //궨ǵ - unsigned int m_CalibrationGridHSize; //궨ߴ - unsigned int m_CalibrationGridVSize; //궨ߴ + UIntData* m_CalibrationHPoints; //标定横向角点数 + UIntData* m_CalibrationVPoints; //标定纵向角点数 + UIntData* m_CalibrationGridHSize; //标定方格横向尺寸 + UIntData* m_CalibrationGridVSize; //标定方格纵向尺寸 - double m_CameraMatrix00; - double m_CameraMatrix01; - double m_CameraMatrix02; - double m_CameraMatrix10; - double m_CameraMatrix11; - double m_CameraMatrix12; - double m_CameraMatrix20; - double m_CameraMatrix21; - double m_CameraMatrix22; + DoubleData* m_CameraMatrix00; + DoubleData* m_CameraMatrix01; + DoubleData* m_CameraMatrix02; + DoubleData* m_CameraMatrix10; + DoubleData* m_CameraMatrix11; + DoubleData* m_CameraMatrix12; + DoubleData* m_CameraMatrix20; + DoubleData* m_CameraMatrix21; + DoubleData* m_CameraMatrix22; - double m_DistCoeffs0; - double m_DistCoeffs1; - double m_DistCoeffs2; - double m_DistCoeffs3; - double m_DistCoeffs4; + DoubleData* m_DistCoeffs0; + DoubleData* m_DistCoeffs1; + DoubleData* m_DistCoeffs2; + DoubleData* m_DistCoeffs3; + DoubleData* m_DistCoeffs4; - unsigned int m_FittingMagX; //Ŵ + UIntData* m_FittingMagX; //放大倍数 - int m_ImageTopLeftX; - int m_ImageTopLeftY; - int m_ImageTopRightX; - int m_ImageTopRightY; - int m_ImageBottomLeftX; - int m_ImageBottomLeftY; - int m_ImageBottomRightX; - int m_ImageBottomRightY; + IntData* m_ImageTopLeftX; + IntData* m_ImageTopLeftY; + IntData* m_ImageTopRightX; + IntData* m_ImageTopRightY; + IntData* m_ImageBottomLeftX; + IntData* m_ImageBottomLeftY; + IntData* m_ImageBottomRightX; + IntData* m_ImageBottomRightY; - int m_PlatformTopLeftX; - int m_PlatformTopLeftY; - int m_PlatformTopRightX; - int m_PlatformTopRightY; - int m_PlatformBottomLeftX; - int m_PlatformBottomLeftY; - int m_PlatformBottomRightX; - int m_PlatformBottomRightY; + IntData* m_PlatformTopLeftX; + IntData* m_PlatformTopLeftY; + IntData* m_PlatformTopRightX; + IntData* m_PlatformTopRightY; + IntData* m_PlatformBottomLeftX; + IntData* m_PlatformBottomLeftY; + IntData* m_PlatformBottomRightX; + IntData* m_PlatformBottomRightY; - int m_BinaryThresholdOffset; - int m_GrayRef; - unsigned int m_MagnifyScale; - float m_MatchRatio; - bool m_BlackFace; - bool m_ShowBinImage; - bool m_ShowCorners; - bool m_ShowAssist; - bool m_CoverImageJoin; + IntData* m_BinaryThresholdOffset; + IntData* m_GrayRef; + UIntData* m_MagnifyScale; + FloatData* m_MatchRatio; + BoolData* m_BlackFace; + BoolData* m_ShowBinImage; + BoolData* m_ShowCorners; + BoolData* m_ShowAssist; + BoolData* m_CoverImageJoin; + char m_endFlag; public: static string CONFIG_NAME; static string FIELD_HAD_CALIBRATION; @@ -113,4 +118,4 @@ public: static string FIELD_SHOW_ASSIST; static string FIELD_COVER_IMAGE_JOIN; }; - +#pragma pack() \ No newline at end of file diff --git a/PrintS/Config/dao/BaseConfigDao.cpp b/PrintS/Config/dao/BaseConfigDao.cpp index c200c8d..5bb92d2 100644 --- a/PrintS/Config/dao/BaseConfigDao.cpp +++ b/PrintS/Config/dao/BaseConfigDao.cpp @@ -2537,361 +2537,361 @@ void BaseConfigDao::FindCameraCalibrationCfg(CameraCalibrationCfg& cfg) vector needins; if (valuemap.find(CameraCalibrationCfg::FIELD_HAD_CALIBRATION) != valuemap.end()) { - cfg.m_HadCalibration = stoi(valuemap[CameraCalibrationCfg::FIELD_HAD_CALIBRATION]) > 0 ? true : false; + cfg.m_HadCalibration ->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_HAD_CALIBRATION]) > 0 ? true : false); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_HAD_CALIBRATION.c_str(), cfg.m_HadCalibration ? "1" : "0"); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_HAD_CALIBRATION.c_str(), cfg.m_HadCalibration->GetValue() ? "1" : "0"); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CALIBRATION_H_POINTS) != valuemap.end()) { - cfg.m_CalibrationHPoints = stoul(valuemap[CameraCalibrationCfg::FIELD_CALIBRATION_H_POINTS]); + cfg.m_CalibrationHPoints->SetValue(stoul(valuemap[CameraCalibrationCfg::FIELD_CALIBRATION_H_POINTS])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_H_POINTS.c_str(), to_string(cfg.m_CalibrationHPoints).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_H_POINTS.c_str(), to_string(cfg.m_CalibrationHPoints->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CALIBRATION_V_POINTS) != valuemap.end()) { - cfg.m_CalibrationVPoints = stoul(valuemap[CameraCalibrationCfg::FIELD_CALIBRATION_V_POINTS]); + cfg.m_CalibrationVPoints->SetValue(stoul(valuemap[CameraCalibrationCfg::FIELD_CALIBRATION_V_POINTS])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_V_POINTS.c_str(), to_string(cfg.m_CalibrationVPoints).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_V_POINTS.c_str(), to_string(cfg.m_CalibrationVPoints->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CALIBRATION_GRID_H_SIZE) != valuemap.end()) { - cfg.m_CalibrationGridHSize = stoul(valuemap[CameraCalibrationCfg::FIELD_CALIBRATION_GRID_H_SIZE]); + cfg.m_CalibrationGridHSize->SetValue(stoul(valuemap[CameraCalibrationCfg::FIELD_CALIBRATION_GRID_H_SIZE])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_GRID_H_SIZE.c_str(), to_string(cfg.m_CalibrationGridHSize).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_GRID_H_SIZE.c_str(), to_string(cfg.m_CalibrationGridHSize->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CALIBRATION_GRID_V_SIZE) != valuemap.end()) { - cfg.m_CalibrationGridVSize = stoul(valuemap[CameraCalibrationCfg::FIELD_CALIBRATION_GRID_V_SIZE]); + cfg.m_CalibrationGridVSize->SetValue(stoul(valuemap[CameraCalibrationCfg::FIELD_CALIBRATION_GRID_V_SIZE])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_GRID_V_SIZE.c_str(), to_string(cfg.m_CalibrationGridVSize).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CALIBRATION_GRID_V_SIZE.c_str(), to_string(cfg.m_CalibrationGridVSize->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CAMERA_MATRIX_00) != valuemap.end()) { - cfg.m_CameraMatrix00 = stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_00]); + cfg.m_CameraMatrix00->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_00])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_00.c_str(), to_string(cfg.m_CameraMatrix00).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_00.c_str(), to_string(cfg.m_CameraMatrix00->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CAMERA_MATRIX_01) != valuemap.end()) { - cfg.m_CameraMatrix01 = stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_01]); + cfg.m_CameraMatrix01->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_01])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_01.c_str(), to_string(cfg.m_CameraMatrix01).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_01.c_str(), to_string(cfg.m_CameraMatrix01->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CAMERA_MATRIX_02) != valuemap.end()) { - cfg.m_CameraMatrix02 = stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_02]); + cfg.m_CameraMatrix02->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_02])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_02.c_str(), to_string(cfg.m_CameraMatrix02).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_02.c_str(), to_string(cfg.m_CameraMatrix02->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CAMERA_MATRIX_10) != valuemap.end()) { - cfg.m_CameraMatrix10 = stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_10]); + cfg.m_CameraMatrix10->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_10])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_10.c_str(), to_string(cfg.m_CameraMatrix10).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_10.c_str(), to_string(cfg.m_CameraMatrix10->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CAMERA_MATRIX_11) != valuemap.end()) { - cfg.m_CameraMatrix11 = stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_11]); + cfg.m_CameraMatrix11->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_11])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_11.c_str(), to_string(cfg.m_CameraMatrix11).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_11.c_str(), to_string(cfg.m_CameraMatrix11->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CAMERA_MATRIX_12) != valuemap.end()) { - cfg.m_CameraMatrix12 = stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_12]); + cfg.m_CameraMatrix12->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_12])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_12.c_str(), to_string(cfg.m_CameraMatrix12).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_12.c_str(), to_string(cfg.m_CameraMatrix12->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CAMERA_MATRIX_20) != valuemap.end()) { - cfg.m_CameraMatrix20 = stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_20]); + cfg.m_CameraMatrix20->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_20])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_20.c_str(), to_string(cfg.m_CameraMatrix20).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_20.c_str(), to_string(cfg.m_CameraMatrix20->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CAMERA_MATRIX_21) != valuemap.end()) { - cfg.m_CameraMatrix21 = stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_21]); + cfg.m_CameraMatrix21->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_21])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_21.c_str(), to_string(cfg.m_CameraMatrix21).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_21.c_str(), to_string(cfg.m_CameraMatrix21->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_CAMERA_MATRIX_22) != valuemap.end()) { - cfg.m_CameraMatrix22 = stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_22]); + cfg.m_CameraMatrix22->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_CAMERA_MATRIX_22])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_22.c_str(), to_string(cfg.m_CameraMatrix22).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_CAMERA_MATRIX_22.c_str(), to_string(cfg.m_CameraMatrix22->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_DIST_COEFFS_0) != valuemap.end()) { - cfg.m_DistCoeffs0 = stod(valuemap[CameraCalibrationCfg::FIELD_DIST_COEFFS_0]); + cfg.m_DistCoeffs0->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_DIST_COEFFS_0])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_0.c_str(), to_string(cfg.m_DistCoeffs0).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_0.c_str(), to_string(cfg.m_DistCoeffs0->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_DIST_COEFFS_1) != valuemap.end()) { - cfg.m_DistCoeffs1 = stod(valuemap[CameraCalibrationCfg::FIELD_DIST_COEFFS_1]); + cfg.m_DistCoeffs1->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_DIST_COEFFS_1])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_1.c_str(), to_string(cfg.m_DistCoeffs1).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_1.c_str(), to_string(cfg.m_DistCoeffs1->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_DIST_COEFFS_2) != valuemap.end()) { - cfg.m_DistCoeffs2 = stod(valuemap[CameraCalibrationCfg::FIELD_DIST_COEFFS_2]); + cfg.m_DistCoeffs2->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_DIST_COEFFS_2])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_2.c_str(), to_string(cfg.m_DistCoeffs2).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_2.c_str(), to_string(cfg.m_DistCoeffs2->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_DIST_COEFFS_3) != valuemap.end()) { - cfg.m_DistCoeffs3 = stod(valuemap[CameraCalibrationCfg::FIELD_DIST_COEFFS_3]); + cfg.m_DistCoeffs3->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_DIST_COEFFS_3])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_3.c_str(), to_string(cfg.m_DistCoeffs3).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_3.c_str(), to_string(cfg.m_DistCoeffs3->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_DIST_COEFFS_4) != valuemap.end()) { - cfg.m_DistCoeffs4 = stod(valuemap[CameraCalibrationCfg::FIELD_DIST_COEFFS_4]); + cfg.m_DistCoeffs4->SetValue(stod(valuemap[CameraCalibrationCfg::FIELD_DIST_COEFFS_4])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_4.c_str(), to_string(cfg.m_DistCoeffs4).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_DIST_COEFFS_4.c_str(), to_string(cfg.m_DistCoeffs4->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_FITTING_MAG_X) != valuemap.end()) { - cfg.m_FittingMagX = stoul(valuemap[CameraCalibrationCfg::FIELD_FITTING_MAG_X]); + cfg.m_FittingMagX->SetValue(stoul(valuemap[CameraCalibrationCfg::FIELD_FITTING_MAG_X])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_FITTING_MAG_X.c_str(), to_string(cfg.m_FittingMagX).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_FITTING_MAG_X.c_str(), to_string(cfg.m_FittingMagX->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_X) != valuemap.end()) { - cfg.m_ImageTopLeftX = stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_X]); + cfg.m_ImageTopLeftX->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_X])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_X.c_str(), to_string(cfg.m_ImageTopLeftX).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_X.c_str(), to_string(cfg.m_ImageTopLeftX->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_Y) != valuemap.end()) { - cfg.m_ImageTopLeftY = stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_Y]); + cfg.m_ImageTopLeftY->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_Y])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_Y.c_str(), to_string(cfg.m_ImageTopLeftY).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_LEFT_Y.c_str(), to_string(cfg.m_ImageTopLeftY->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_X) != valuemap.end()) { - cfg.m_ImageTopRightX = stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_X]); + cfg.m_ImageTopRightX->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_X])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_X.c_str(), to_string(cfg.m_ImageTopRightX).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_X.c_str(), to_string(cfg.m_ImageTopRightX->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_Y) != valuemap.end()) { - cfg.m_ImageTopRightY = stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_Y]); + cfg.m_ImageTopRightY->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_Y])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_Y.c_str(), to_string(cfg.m_ImageTopRightY).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_TOP_RIGHT_Y.c_str(), to_string(cfg.m_ImageTopRightY->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_X) != valuemap.end()) { - cfg.m_ImageBottomLeftX = stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_X]); + cfg.m_ImageBottomLeftX->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_X])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_X.c_str(), to_string(cfg.m_ImageBottomLeftX).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_X.c_str(), to_string(cfg.m_ImageBottomLeftX->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_Y) != valuemap.end()) { - cfg.m_ImageBottomLeftY = stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_Y]); + cfg.m_ImageBottomLeftY->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_Y])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_Y.c_str(), to_string(cfg.m_ImageBottomLeftY).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_LEFT_Y.c_str(), to_string(cfg.m_ImageBottomLeftY->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_X) != valuemap.end()) { - cfg.m_ImageBottomRightX = stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_X]); + cfg.m_ImageBottomRightX->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_X])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_X.c_str(), to_string(cfg.m_ImageBottomRightX).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_X.c_str(), to_string(cfg.m_ImageBottomRightX->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_Y) != valuemap.end()) { - cfg.m_ImageBottomRightY = stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_Y]); + cfg.m_ImageBottomRightY->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_Y])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_Y.c_str(), to_string(cfg.m_ImageBottomRightY).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_IMAGE_BOTTOM_RIGHT_Y.c_str(), to_string(cfg.m_ImageBottomRightY->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_X) != valuemap.end()) { - cfg.m_PlatformTopLeftX = stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_X]); + cfg.m_PlatformTopLeftX->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_X])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_X.c_str(), to_string(cfg.m_PlatformTopLeftX).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_X.c_str(), to_string(cfg.m_PlatformTopLeftX->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_Y) != valuemap.end()) { - cfg.m_PlatformTopLeftY = stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_Y]); + cfg.m_PlatformTopLeftY->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_Y])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_Y.c_str(), to_string(cfg.m_PlatformTopLeftY).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_LEFT_Y.c_str(), to_string(cfg.m_PlatformTopLeftY->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_X) != valuemap.end()) { - cfg.m_PlatformTopRightX = stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_X]); + cfg.m_PlatformTopRightX->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_X])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_X.c_str(), to_string(cfg.m_PlatformTopRightX).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_X.c_str(), to_string(cfg.m_PlatformTopRightX->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_Y) != valuemap.end()) { - cfg.m_PlatformTopRightY = stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_Y]); + cfg.m_PlatformTopRightY->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_Y])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_Y.c_str(), to_string(cfg.m_PlatformTopRightY).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_TOP_RIGHT_Y.c_str(), to_string(cfg.m_PlatformTopRightY->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_X) != valuemap.end()) { - cfg.m_PlatformBottomLeftX = stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_X]); + cfg.m_PlatformBottomLeftX->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_X])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_X.c_str(), to_string(cfg.m_PlatformBottomLeftX).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_X.c_str(), to_string(cfg.m_PlatformBottomLeftX->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_Y) != valuemap.end()) { - cfg.m_PlatformBottomLeftY = stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_Y]); + cfg.m_PlatformBottomLeftY->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_Y])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_Y.c_str(), to_string(cfg.m_PlatformBottomLeftY).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_LEFT_Y.c_str(), to_string(cfg.m_PlatformBottomLeftY->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_X) != valuemap.end()) { - cfg.m_PlatformBottomRightX = stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_X]); + cfg.m_PlatformBottomRightX->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_X])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_X.c_str(), to_string(cfg.m_PlatformBottomRightX).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_X.c_str(), to_string(cfg.m_PlatformBottomRightX->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_Y) != valuemap.end()) { - cfg.m_PlatformBottomRightY = stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_Y]); + cfg.m_PlatformBottomRightY->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_Y])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_Y.c_str(), to_string(cfg.m_PlatformBottomRightY).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_PLATFORM_BOTTOM_RIGHT_Y.c_str(), to_string(cfg.m_PlatformBottomRightY->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_BINARY_THRESHOLD_OFFSET) != valuemap.end()) { - cfg.m_BinaryThresholdOffset = stoi(valuemap[CameraCalibrationCfg::FIELD_BINARY_THRESHOLD_OFFSET]); + cfg.m_BinaryThresholdOffset->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_BINARY_THRESHOLD_OFFSET])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_BINARY_THRESHOLD_OFFSET.c_str(), to_string(cfg.m_BinaryThresholdOffset).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_BINARY_THRESHOLD_OFFSET.c_str(), to_string(cfg.m_BinaryThresholdOffset->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_GRAY_REF) != valuemap.end()) { - cfg.m_GrayRef = stoi(valuemap[CameraCalibrationCfg::FIELD_GRAY_REF]); + cfg.m_GrayRef->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_GRAY_REF])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_GRAY_REF.c_str(), to_string(cfg.m_GrayRef).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_GRAY_REF.c_str(), to_string(cfg.m_GrayRef->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_MAGNIFY_SCALE) != valuemap.end()) { - cfg.m_MagnifyScale = stoul(valuemap[CameraCalibrationCfg::FIELD_MAGNIFY_SCALE]); + cfg.m_MagnifyScale->SetValue(stoul(valuemap[CameraCalibrationCfg::FIELD_MAGNIFY_SCALE])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_MAGNIFY_SCALE.c_str(), to_string(cfg.m_MagnifyScale).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_MAGNIFY_SCALE.c_str(), to_string(cfg.m_MagnifyScale->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_MATCH_RATIO) != valuemap.end()) { - cfg.m_MatchRatio = stof(valuemap[CameraCalibrationCfg::FIELD_MATCH_RATIO]); + cfg.m_MatchRatio->SetValue(stof(valuemap[CameraCalibrationCfg::FIELD_MATCH_RATIO])); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_MATCH_RATIO.c_str(), to_string(cfg.m_MatchRatio).c_str()); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_MATCH_RATIO.c_str(), to_string(cfg.m_MatchRatio->GetValue()).c_str()); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_BLACK_FACE) != valuemap.end()) { - cfg.m_BlackFace = (stoi(valuemap[CameraCalibrationCfg::FIELD_BLACK_FACE]) > 0 ? true : false); + cfg.m_BlackFace->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_BLACK_FACE]) > 0 ? true : false); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_BLACK_FACE.c_str(), cfg.m_BlackFace ? "1" : "0"); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_BLACK_FACE.c_str(), cfg.m_BlackFace->GetValue() ? "1" : "0"); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_SHOW_BIN_IMAGE) != valuemap.end()) { - cfg.m_ShowBinImage = (stoi(valuemap[CameraCalibrationCfg::FIELD_SHOW_BIN_IMAGE]) > 0 ? true : false); + cfg.m_ShowBinImage->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_SHOW_BIN_IMAGE]) > 0 ? true : false); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_SHOW_BIN_IMAGE.c_str(), cfg.m_ShowBinImage ? "1" : "0"); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_SHOW_BIN_IMAGE.c_str(), cfg.m_ShowBinImage->GetValue() ? "1" : "0"); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_SHOW_CORNERS) != valuemap.end()) { - cfg.m_ShowCorners = (stoi(valuemap[CameraCalibrationCfg::FIELD_SHOW_CORNERS]) > 0 ? true : false); + cfg.m_ShowCorners->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_SHOW_CORNERS]) > 0 ? true : false); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_SHOW_CORNERS.c_str(), cfg.m_ShowCorners ? "1" : "0"); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_SHOW_CORNERS.c_str(), cfg.m_ShowCorners->GetValue() ? "1" : "0"); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_SHOW_ASSIST) != valuemap.end()) { - cfg.m_ShowAssist = (stoi(valuemap[CameraCalibrationCfg::FIELD_SHOW_ASSIST]) > 0 ? true : false); + cfg.m_ShowAssist->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_SHOW_ASSIST]) > 0 ? true : false); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_SHOW_ASSIST.c_str(), cfg.m_ShowAssist ? "1" : "0"); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_SHOW_ASSIST.c_str(), cfg.m_ShowAssist->GetValue() ? "1" : "0"); needins.push_back(buffer); } if (valuemap.find(CameraCalibrationCfg::FIELD_COVER_IMAGE_JOIN) != valuemap.end()) { - cfg.m_CoverImageJoin = (stoi(valuemap[CameraCalibrationCfg::FIELD_COVER_IMAGE_JOIN]) > 0 ? true : false); + cfg.m_CoverImageJoin->SetValue(stoi(valuemap[CameraCalibrationCfg::FIELD_COVER_IMAGE_JOIN]) > 0 ? true : false); } else { - sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_COVER_IMAGE_JOIN.c_str(), cfg.m_CoverImageJoin ? "1" : "0"); + sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CameraCalibrationCfg::FIELD_COVER_IMAGE_JOIN.c_str(), cfg.m_CoverImageJoin->GetValue() ? "1" : "0"); needins.push_back(buffer); } diff --git a/PrintS/DataManage/DataHandle.cpp b/PrintS/DataManage/DataHandle.cpp index 3610612..7a941fb 100644 --- a/PrintS/DataManage/DataHandle.cpp +++ b/PrintS/DataManage/DataHandle.cpp @@ -120,20 +120,17 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) { m_controller->m_Camera->Update(msg); break; case PURIFIERFUNC: m_controller->m_Purifier->CallFunc(msg); break; + case PARAMLIMITCFG: + case EXTCFG: case RUNCFG: - ConfigManager::GetInstance()->GetRunCfg()->Update(msg, RUNCFGPARAM); - break; case INFRAREDTEMPCFG: - ConfigManager::GetInstance()->GetInfraredTempCfg()->Update(msg, INFRAREDTEMPCFGPARAM); - break; case MACHINECFG: - ConfigManager::GetInstance()->GetMachineCfg()->Update(msg, MACHINECFGPARAM); - break; case FAVORITECFG: - ConfigManager::GetInstance()->GetFavoriteCfg()->UpdateSub(msg); + case CAMERACALIBRATIONCFG: + ConfigManager::GetInstance()->UpdateCfg(msg); break; case REQUEST: - if (ConverType::TryToI( msg.nameKey) == XYSCANSTATE) { + if (!msg.nameKey.empty() && ConverType::TryToI( msg.nameKey) == XYSCANSTATE) { printf("error,40 需要释放ScannerCtrl::Init()内部代码块...\n"); for (int i = 0; i < 4; ++i) { //需要先打开ScannerCtrl::Init()代码块 Scanner* p = (m_controller->m_ScannerCtrl->GetScanners())->at(i); diff --git a/PrintS/DataManage/RWData.h b/PrintS/DataManage/RWData.h index e2bf00b..fad9346 100644 --- a/PrintS/DataManage/RWData.h +++ b/PrintS/DataManage/RWData.h @@ -27,6 +27,7 @@ enum READTYPE { INFRAREDTEMPCFG, MACHINECFG, FAVORITECFG, + CAMERACALIBRATIONCFG, LOADPARAM, //装载参数 @@ -107,6 +108,7 @@ enum WRITETYPE { INFRAREDTEMPCFGPARAM, //InfraredTempCfg 参数 MACHINECFGPARAM, //MachineCfg 参数 FAVORITECFGPARAM, //FavoriteCfg 参数 + CAMERACALIBRATIONCFGPARAM, //CameracalibrationCfg 参数 MOLDCFGPARAM, LOADCFGPARAM, diff --git a/PrintS/RecoatCheck/RecoatCheck.cpp b/PrintS/RecoatCheck/RecoatCheck.cpp index 24000d0..2d20355 100644 --- a/PrintS/RecoatCheck/RecoatCheck.cpp +++ b/PrintS/RecoatCheck/RecoatCheck.cpp @@ -1122,7 +1122,7 @@ bool RecoatCheck::CheckWP2(MetaData* metadata, unsigned int layer) MachineCfg* mcfg = ConfigManager::GetInstance()->GetMachineCfg(); RecoatCheckCfg* rcc = ConfigManager::GetInstance()->GetRecoatCheckCfg(); if (!rcc->m_Enable)return true; - if (m_CameraCalibrationCfg->m_CameraMatrix00 == 0.0 || !Calibration::m_CoverImage) { + if (m_CameraCalibrationCfg->m_CameraMatrix00->GetValue() == 0.0 || !Calibration::m_CoverImage) { return true; } @@ -1172,33 +1172,33 @@ bool RecoatCheck::CheckWP2(MetaData* metadata, unsigned int layer) cv::Mat cameraMatrix = cv::Mat(3, 3, CV_64FC1, cv::Scalar::all(0)); //摄像机内参数矩阵 cv::Mat distCoeffs = cv::Mat(1, 5, CV_64FC1, cv::Scalar::all(0)); //摄像机的5个畸变系数:k1,k2,p1,p2,k3 - cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00; - cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01; - cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02; - cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10; - cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11; - cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12; - cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20; - cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21; - cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22; - distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0; - distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1; - distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2; - distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3; - distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4; + cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00->GetValue(); + cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01->GetValue(); + cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02->GetValue(); + cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10->GetValue(); + cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11->GetValue(); + cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12->GetValue(); + cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20->GetValue(); + cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21->GetValue(); + cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22->GetValue(); + distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0->GetValue(); + distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1->GetValue(); + distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2->GetValue(); + distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3->GetValue(); + distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4->GetValue(); cv::Mat calImage; undistort(divImage, calImage, cameraMatrix, distCoeffs); //g_log->TraceInfo("undistort"); //cv::imwrite("g:/testimage/cal.bmp", calImage); cv::Point2f srcTri[4]; - srcTri[0] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopLeftX, (float)m_CameraCalibrationCfg->m_ImageTopLeftY); - srcTri[1] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopRightX, (float)m_CameraCalibrationCfg->m_ImageTopRightY); - srcTri[2] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomRightX, (float)m_CameraCalibrationCfg->m_ImageBottomRightY); - srcTri[3] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomLeftX, (float)m_CameraCalibrationCfg->m_ImageBottomLeftY); + srcTri[0] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopLeftX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageTopLeftY->GetValue()); + srcTri[1] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopRightX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageTopRightY->GetValue()); + srcTri[2] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomRightX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageBottomRightY->GetValue()); + srcTri[3] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomLeftX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageBottomLeftY->GetValue()); cv::Point2f tempTri[4]; - int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX - m_CameraCalibrationCfg->m_PlatformTopLeftX) * rcc->m_ImageScale; - int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY - m_CameraCalibrationCfg->m_PlatformBottomRightY) * rcc->m_ImageScale; + int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX->GetValue() - m_CameraCalibrationCfg->m_PlatformTopLeftX->GetValue()) * rcc->m_ImageScale; + int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY->GetValue() - m_CameraCalibrationCfg->m_PlatformBottomRightY->GetValue()) * rcc->m_ImageScale; tempTri[0] = cv::Point2f(0.0f, 0.0f); tempTri[1] = cv::Point2f((float)tx, 0.0f); @@ -1269,8 +1269,8 @@ bool RecoatCheck::CheckWP2(MetaData* metadata, unsigned int layer) } - float halfWidth = (float)(m_CameraCalibrationCfg->m_PlatformTopRightX - m_CameraCalibrationCfg->m_PlatformTopLeftX) * rcc->m_ImageScale / 2.0f; - float halfHigh = (float)(m_CameraCalibrationCfg->m_PlatformTopRightY - m_CameraCalibrationCfg->m_PlatformBottomRightY) * rcc->m_ImageScale / 2.0f; + float halfWidth = (float)(m_CameraCalibrationCfg->m_PlatformTopRightX->GetValue() - m_CameraCalibrationCfg->m_PlatformTopLeftX->GetValue()) * rcc->m_ImageScale / 2.0f; + float halfHigh = (float)(m_CameraCalibrationCfg->m_PlatformTopRightY->GetValue() - m_CameraCalibrationCfg->m_PlatformBottomRightY->GetValue()) * rcc->m_ImageScale / 2.0f; map infos; metadata->LockMainDB(); @@ -1486,7 +1486,7 @@ void RecoatCheck::TestCheck() MachineCfg* mcfg = ConfigManager::GetInstance()->GetMachineCfg(); RecoatCheckCfg* rcc = ConfigManager::GetInstance()->GetRecoatCheckCfg(); if (!rcc->m_Enable)return; - if (m_CameraCalibrationCfg->m_CameraMatrix00 == 0.0 || !Calibration::m_CoverImage) { + if (m_CameraCalibrationCfg->m_CameraMatrix00->GetValue() == 0.0 || !Calibration::m_CoverImage) { return; } @@ -1525,32 +1525,32 @@ void RecoatCheck::TestCheck() cv::Mat cameraMatrix = cv::Mat(3, 3, CV_64FC1, cv::Scalar::all(0)); //摄像机内参数矩阵 cv::Mat distCoeffs = cv::Mat(1, 5, CV_64FC1, cv::Scalar::all(0)); //摄像机的5个畸变系数:k1,k2,p1,p2,k3 - cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00; - cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01; - cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02; - cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10; - cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11; - cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12; - cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20; - cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21; - cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22; - distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0; - distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1; - distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2; - distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3; - distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4; + cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00->GetValue(); + cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01->GetValue(); + cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02->GetValue(); + cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10->GetValue(); + cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11->GetValue(); + cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12->GetValue(); + cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20->GetValue(); + cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21->GetValue(); + cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22->GetValue(); + distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0->GetValue(); + distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1->GetValue(); + distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2->GetValue(); + distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3->GetValue(); + distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4->GetValue(); cv::Mat calImage; undistort(divImage, calImage, cameraMatrix, distCoeffs); //cv::imwrite("g:/testimage/cal.bmp", calImage); cv::Point2f srcTri[4]; - srcTri[0] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopLeftX, (float)m_CameraCalibrationCfg->m_ImageTopLeftY); - srcTri[1] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopRightX, (float)m_CameraCalibrationCfg->m_ImageTopRightY); - srcTri[2] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomRightX, (float)m_CameraCalibrationCfg->m_ImageBottomRightY); - srcTri[3] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomLeftX, (float)m_CameraCalibrationCfg->m_ImageBottomLeftY); + srcTri[0] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopLeftX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageTopLeftY->GetValue()); + srcTri[1] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopRightX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageTopRightY->GetValue()); + srcTri[2] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomRightX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageBottomRightY->GetValue()); + srcTri[3] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomLeftX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageBottomLeftY->GetValue()); cv::Point2f tempTri[4]; - int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX - m_CameraCalibrationCfg->m_PlatformTopLeftX) * rcc->m_ImageScale; - int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY - m_CameraCalibrationCfg->m_PlatformBottomRightY) * rcc->m_ImageScale; + int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX->GetValue() - m_CameraCalibrationCfg->m_PlatformTopLeftX->GetValue()) * rcc->m_ImageScale; + int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY->GetValue() - m_CameraCalibrationCfg->m_PlatformBottomRightY->GetValue()) * rcc->m_ImageScale; tempTri[0] = cv::Point2f(0.0f, 0.0f); tempTri[1] = cv::Point2f((float)tx, 0.0f); @@ -1571,7 +1571,7 @@ void RecoatCheck::TestCheck() cv::Mat dst; cv::boxFilter(wm, dst, -1, cv::Size(3, 3)); - if (m_CameraCalibrationCfg->m_BlackFace) { + if (m_CameraCalibrationCfg->m_BlackFace->GetValue()) { cv::threshold(dst, dst, bgGrayAvg - 20, 255, cv::ThresholdTypes::THRESH_BINARY_INV); } else { diff --git a/PrintS/additional/Calibration.cpp b/PrintS/additional/Calibration.cpp index 3533349..042dd2b 100644 --- a/PrintS/additional/Calibration.cpp +++ b/PrintS/additional/Calibration.cpp @@ -182,8 +182,8 @@ void Calibration::UpdateData(MetaData* metaData) { cv::cvtColor(m_GraftShowImage->m_ImageMat, m_GraftShowImage->m_ImageMat, cv::COLOR_GRAY2RGB); m_GraftShowImage->m_IsColor = true; if (m_Jc->GetJob()) { - int xLength = (m_CameraCalibrationCfg->m_PlatformTopRightX - m_CameraCalibrationCfg->m_PlatformTopLeftX)*m_CameraCalibrationCfg->m_MagnifyScale; - int yLength = (m_CameraCalibrationCfg->m_PlatformTopRightY - m_CameraCalibrationCfg->m_PlatformBottomRightY)*m_CameraCalibrationCfg->m_MagnifyScale; + int xLength = (m_CameraCalibrationCfg->m_PlatformTopRightX->GetValue() - m_CameraCalibrationCfg->m_PlatformTopLeftX->GetValue())*m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); + int yLength = (m_CameraCalibrationCfg->m_PlatformTopRightY->GetValue() - m_CameraCalibrationCfg->m_PlatformBottomRightY->GetValue())*m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); int centerx = xLength / 2; int centery = yLength / 2; FileProcessor *jfp = m_Jc->GetJob(); @@ -210,14 +210,14 @@ void Calibration::UpdateData(MetaData* metaData) { real_x = (mov_x1 - cpart->partPosBean.m_PartCenterX)*cos(cpart->partPosBean.m_Radians) - (mov_y1 - cpart->partPosBean.m_PartCenterY)*sin(cpart->partPosBean.m_Radians) + cpart->partPosBean.m_PartCenterX; real_y = (mov_x1 - cpart->partPosBean.m_PartCenterX)*sin(cpart->partPosBean.m_Radians) + (mov_y1 - cpart->partPosBean.m_PartCenterY)*cos(cpart->partPosBean.m_Radians) + cpart->partPosBean.m_PartCenterY; - float tempx = real_x * m_CameraCalibrationCfg->m_MagnifyScale + centerx; - float tempy = centery - real_y * m_CameraCalibrationCfg->m_MagnifyScale; + float tempx = real_x * m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx; + float tempy = centery - real_y * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); cv::Point2f p(tempx, tempy); line.push_back(p); } int cc = j % 10; if (!line.empty()) { - if (m_CameraCalibrationCfg->m_ShowAssist) { + if (m_CameraCalibrationCfg->m_ShowAssist->GetValue()) { cv::RotatedRect re = cv::minAreaRect(line); cv::Point2f P[4]; re.points(P); @@ -227,8 +227,8 @@ void Calibration::UpdateData(MetaData* metaData) { cv::circle(m_GraftShowImage->m_ImageMat, re.center, 1, m_ColorMap[cc]); } } - int pcx = cpart->partPosBean.m_PartCenterX*m_CameraCalibrationCfg->m_MagnifyScale + centerx + 0.5; - int pcy = centery - cpart->partPosBean.m_PartCenterY * m_CameraCalibrationCfg->m_MagnifyScale + 0.5; + int pcx = cpart->partPosBean.m_PartCenterX*m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx + 0.5; + int pcy = centery - cpart->partPosBean.m_PartCenterY * m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + 0.5; for (size_t lindex = 0; lindex < line.size() - 1; lindex++) { if (m_ManualGraftSelectPart == cpart->id) { cv::line(m_GraftShowImage->m_ImageMat, line[lindex], line[lindex + 1], cv::Scalar(0, 255, 0), 1); @@ -319,7 +319,7 @@ void Calibration::GraftRunV2() while (it != end) { double gray = *it; - if (gray > bgGrayAvg + m_CameraCalibrationCfg->m_BinaryThresholdOffset || gray < bgGrayAvg - m_CameraCalibrationCfg->m_BinaryThresholdOffset) { + if (gray > bgGrayAvg + m_CameraCalibrationCfg->m_BinaryThresholdOffset->GetValue() || gray < bgGrayAvg - m_CameraCalibrationCfg->m_BinaryThresholdOffset->GetValue()) { *it = 255; } else { @@ -786,11 +786,11 @@ void Calibration::GraftRun() //sprintf_s(buffer, sizeof(buffer), "%sclose.bmp", m_ImgPath.c_str()); - if (m_CameraCalibrationCfg->m_BlackFace) { - cv::threshold(fix, fix, m_CameraCalibrationCfg->m_GrayRef - m_CameraCalibrationCfg->m_BinaryThresholdOffset, 255, cv::ThresholdTypes::THRESH_BINARY_INV); + if (m_CameraCalibrationCfg->m_BlackFace->GetValue()) { + cv::threshold(fix, fix, m_CameraCalibrationCfg->m_GrayRef->GetValue() - m_CameraCalibrationCfg->m_BinaryThresholdOffset->GetValue(), 255, cv::ThresholdTypes::THRESH_BINARY_INV); } else { - cv::threshold(fix, fix, m_CameraCalibrationCfg->m_GrayRef + m_CameraCalibrationCfg->m_BinaryThresholdOffset, 255, cv::ThresholdTypes::THRESH_BINARY); + cv::threshold(fix, fix, m_CameraCalibrationCfg->m_GrayRef->GetValue() + m_CameraCalibrationCfg->m_BinaryThresholdOffset->GetValue(), 255, cv::ThresholdTypes::THRESH_BINARY); } sprintf_s(buffer, sizeof(buffer), "%sClose.bmp", m_ImgPath.c_str()); cv::imwrite(buffer, fix); @@ -811,8 +811,8 @@ void Calibration::GraftRun() MetaData::Layer* layer = m_MetaData->GetLayer(0); vector &partVec = m_MetaData->GetPartVec(); map matchInfos; - int xLength = (m_CameraCalibrationCfg->m_PlatformTopRightX - m_CameraCalibrationCfg->m_PlatformTopLeftX)*m_CameraCalibrationCfg->m_MagnifyScale; - int yLength = (m_CameraCalibrationCfg->m_PlatformTopRightY - m_CameraCalibrationCfg->m_PlatformBottomRightY)*m_CameraCalibrationCfg->m_MagnifyScale; + int xLength = (m_CameraCalibrationCfg->m_PlatformTopRightX->GetValue() - m_CameraCalibrationCfg->m_PlatformTopLeftX->GetValue())*m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); + int yLength = (m_CameraCalibrationCfg->m_PlatformTopRightY->GetValue() - m_CameraCalibrationCfg->m_PlatformBottomRightY->GetValue())*m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); int centerx = xLength / 2; int centery = yLength / 2; @@ -836,10 +836,10 @@ void Calibration::GraftRun() if (pdb->type == BIN_VECTOR) { for (unsigned int j = 0; j < pdb->point_indexs.size(); ++j) { BPBinary::VectorPoint* pvp = (BPBinary::VectorPoint*)pdb->point_indexs[j]; - float tempx1 = pvp->x1 * m_CameraCalibrationCfg->m_MagnifyScale + centerx; - float tempy1 = centery - pvp->y1 * m_CameraCalibrationCfg->m_MagnifyScale; - float tempx2 = pvp->x2 * m_CameraCalibrationCfg->m_MagnifyScale + centerx; - float tempy2 = centery - pvp->y2 * m_CameraCalibrationCfg->m_MagnifyScale; + float tempx1 = pvp->x1 * m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx; + float tempy1 = centery - pvp->y1 * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); + float tempx2 = pvp->x2 * m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx; + float tempy2 = centery - pvp->y2 * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); cv::Point2f p1(tempx1, tempy1); cv::Point2f p2(tempx2, tempy2); cv::line(imageTemp3, p1, p2, cv::Scalar(255), 1); @@ -851,8 +851,8 @@ void Calibration::GraftRun() std::vector line; BPBinary::ChainPoint* point = (BPBinary::ChainPoint*)pdb->point_indexs[j]; for (unsigned int k = 0; k < point->points.size(); ++k) { - float tempx = point->points[k]->x * m_CameraCalibrationCfg->m_MagnifyScale + centerx; - float tempy = centery - point->points[k]->y * m_CameraCalibrationCfg->m_MagnifyScale; + float tempx = point->points[k]->x * m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx; + float tempy = centery - point->points[k]->y * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); cv::Point2f p(tempx, tempy); line.push_back(p); } @@ -949,10 +949,10 @@ void Calibration::GraftRun() cv::Rect rt2 = cv::boundingRect(mat.second->m_TplContours); int matchLaser = -1; for (size_t lindex = 0; lindex < cfgs->size(); lindex++) { - float lminx = (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_xmeasure_min*m_CameraCalibrationCfg->m_MagnifyScale + centerx; - float lmaxx = (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_xmeasure_max*m_CameraCalibrationCfg->m_MagnifyScale + centerx; - float lmaxy = centery - (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_ymeasure_min*m_CameraCalibrationCfg->m_MagnifyScale; - float lminy = centery - (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_ymeasure_max*m_CameraCalibrationCfg->m_MagnifyScale; + float lminx = (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_xmeasure_min*m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx; + float lmaxx = (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_xmeasure_max*m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx; + float lmaxy = centery - (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_ymeasure_min*m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); + float lminy = centery - (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_ymeasure_max*m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); float mminx = rt.x; float mmaxx = rt.x + rt.width; @@ -966,10 +966,10 @@ void Calibration::GraftRun() int dataLaser = -1; for (size_t lindex = 0; lindex < cfgs->size(); lindex++) { - float lminx = (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_xmeasure_min*m_CameraCalibrationCfg->m_MagnifyScale + centerx; - float lmaxx = (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_xmeasure_max*m_CameraCalibrationCfg->m_MagnifyScale + centerx; - float lmaxy = centery - (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_ymeasure_min*m_CameraCalibrationCfg->m_MagnifyScale; - float lminy = centery - (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_ymeasure_max*m_CameraCalibrationCfg->m_MagnifyScale; + float lminx = (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_xmeasure_min*m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx; + float lmaxx = (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_xmeasure_max*m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx; + float lmaxy = centery - (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_ymeasure_min*m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); + float lminy = centery - (*cfgs)[lindex]->m_ScanCfgWrapper.m_CorrectParamCfg.m_ymeasure_max*m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); float mminx = rt2.x; float mmaxx = rt2.x + rt2.width; @@ -1099,7 +1099,7 @@ void Calibration::GraftRun() distMax = matchePoints[i].distance; } } - distMax = distMax*m_CameraCalibrationCfg->m_MatchRatio; + distMax = distMax*m_CameraCalibrationCfg->m_MatchRatio->GetValue(); for (size_t i = 0; i < matchePoints.size(); i++) { if (matchePoints[i].distance < distMax) { GoodMatchePoints.push_back(matchePoints[i]); @@ -1145,8 +1145,8 @@ void Calibration::GraftRun() float partCenterX = part->partPosBean.m_SrcPartCenterX; float partCenterY = part->partPosBean.m_SrcPartCenterY; - float tempx = partCenterX * m_CameraCalibrationCfg->m_MagnifyScale + centerx; - float tempy = (float)centery - partCenterY * m_CameraCalibrationCfg->m_MagnifyScale; + float tempx = partCenterX * m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx; + float tempy = (float)centery - partCenterY * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); cv::Mat rot_mat = cv::getRotationMatrix2D(cv::Point2f(tempx, tempy), avg, 1.0); cv::Mat tplr(mat.second->m_TplImage.size(), CV_8U); cv::warpAffine(mat.second->m_TplImage, tplr, rot_mat, mat.second->m_TplImage.size(), cv::INTER_LINEAR, cv::BORDER_CONSTANT); @@ -1201,8 +1201,8 @@ void Calibration::GraftRun() for (auto mat : matchInfos) { MetaData::Part* part = m_MetaData->GetPart(mat.first); if (part) { - part->partPosBean.m_XOffset = mat.second->m_XOffset / m_CameraCalibrationCfg->m_MagnifyScale; - part->partPosBean.m_YOffset = -mat.second->m_YOffset / m_CameraCalibrationCfg->m_MagnifyScale; + part->partPosBean.m_XOffset = mat.second->m_XOffset / m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); + part->partPosBean.m_YOffset = -mat.second->m_YOffset / m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); part->partPosBean.m_RotateAngle = mat.second->m_AimAngle; part->partPosBean.m_Radians = (float)MathHelper::DegreesToRadians(part->partPosBean.m_RotateAngle); part->partPosBean.m_PartCenterX = part->partPosBean.m_XOffset + part->partPosBean.m_SrcPartCenterX; @@ -1247,8 +1247,8 @@ void Calibration::GraftRun() real_x = (mov_x1 - part->partPosBean.m_PartCenterX)*cos(part->partPosBean.m_Radians) - (mov_y1 - part->partPosBean.m_PartCenterY)*sin(part->partPosBean.m_Radians) + part->partPosBean.m_PartCenterX; real_y = (mov_x1 - part->partPosBean.m_PartCenterX)*sin(part->partPosBean.m_Radians) + (mov_y1 - part->partPosBean.m_PartCenterY)*cos(part->partPosBean.m_Radians) + part->partPosBean.m_PartCenterY; - float tempx = real_x * m_CameraCalibrationCfg->m_MagnifyScale + centerx; - float tempy = centery - real_y * m_CameraCalibrationCfg->m_MagnifyScale; + float tempx = real_x * m_CameraCalibrationCfg->m_MagnifyScale->GetValue() + centerx; + float tempy = centery - real_y * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); cv::Point2f p(tempx, tempy); line.push_back(p); @@ -1296,20 +1296,20 @@ cv::Mat Calibration::CalibrationImage(cv::Mat image) cv::Mat cameraMatrix = cv::Mat(3, 3, CV_64FC1, cv::Scalar::all(0)); //摄像机内参数矩阵 cv::Mat distCoeffs = cv::Mat(1, 5, CV_64FC1, cv::Scalar::all(0)); //摄像机的5个畸变系数:k1,k2,p1,p2,k3 - cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00; - cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01; - cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02; - cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10; - cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11; - cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12; - cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20; - cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21; - cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22; - distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0; - distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1; - distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2; - distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3; - distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4; + cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00->GetValue(); + cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01->GetValue(); + cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02->GetValue(); + cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10->GetValue(); + cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11->GetValue(); + cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12->GetValue(); + cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20->GetValue(); + cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21->GetValue(); + cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22->GetValue(); + distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0->GetValue(); + distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1->GetValue(); + distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2->GetValue(); + distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3->GetValue(); + distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4->GetValue(); @@ -1348,33 +1348,33 @@ cv::Mat Calibration::CalibrationWithCfg(cv::Mat image) cv::Mat distCoeffs = cv::Mat(1, 5, CV_64FC1, cv::Scalar::all(0)); //摄像机的5个畸变系数:k1,k2,p1,p2,k3 - cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00; - cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01; - cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02; - cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10; - cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11; - cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12; - cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20; - cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21; - cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22; - distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0; - distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1; - distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2; - distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3; - distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4; + cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00->GetValue(); + cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01->GetValue(); + cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02->GetValue(); + cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10->GetValue(); + cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11->GetValue(); + cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12->GetValue(); + cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20->GetValue(); + cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21->GetValue(); + cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22->GetValue(); + distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0->GetValue(); + distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1->GetValue(); + distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2->GetValue(); + distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3->GetValue(); + distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4->GetValue(); cv::Mat calImage; undistort(image, calImage, cameraMatrix, distCoeffs); cv::Point2f srcTri[4]; - srcTri[0] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopLeftX, (float)m_CameraCalibrationCfg->m_ImageTopLeftY); - srcTri[1] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopRightX, (float)m_CameraCalibrationCfg->m_ImageTopRightY); - srcTri[2] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomRightX, (float)m_CameraCalibrationCfg->m_ImageBottomRightY); - srcTri[3] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomLeftX, (float)m_CameraCalibrationCfg->m_ImageBottomLeftY); + srcTri[0] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopLeftX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageTopLeftY->GetValue()); + srcTri[1] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopRightX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageTopRightY->GetValue()); + srcTri[2] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomRightX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageBottomRightY->GetValue()); + srcTri[3] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomLeftX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageBottomLeftY->GetValue()); cv::Point2f tempTri[4]; - int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX - m_CameraCalibrationCfg->m_PlatformTopLeftX) * m_CameraCalibrationCfg->m_MagnifyScale; - int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY - m_CameraCalibrationCfg->m_PlatformBottomRightY) * m_CameraCalibrationCfg->m_MagnifyScale; + int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX->GetValue() - m_CameraCalibrationCfg->m_PlatformTopLeftX->GetValue()) * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); + int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY->GetValue() - m_CameraCalibrationCfg->m_PlatformBottomRightY->GetValue()) * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); tempTri[0] = cv::Point2f(0.0f, 0.0f); tempTri[1] = cv::Point2f((float)tx, 0.0f); @@ -1407,33 +1407,33 @@ cv::Mat Calibration::CalibrationWithCfgBin(cv::Mat image) cv::Mat distCoeffs = cv::Mat(1, 5, CV_64FC1, cv::Scalar::all(0)); //摄像机的5个畸变系数:k1,k2,p1,p2,k3 - cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00; - cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01; - cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02; - cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10; - cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11; - cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12; - cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20; - cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21; - cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22; - distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0; - distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1; - distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2; - distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3; - distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4; + cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00->GetValue(); + cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01->GetValue(); + cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02->GetValue(); + cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10->GetValue(); + cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11->GetValue(); + cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12->GetValue(); + cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20->GetValue(); + cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21->GetValue(); + cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22->GetValue(); + distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0->GetValue(); + distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1->GetValue(); + distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2->GetValue(); + distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3->GetValue(); + distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4->GetValue(); cv::Mat calImage; undistort(image, calImage, cameraMatrix, distCoeffs); cv::Point2f srcTri[4]; - srcTri[0] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopLeftX, (float)m_CameraCalibrationCfg->m_ImageTopLeftY); - srcTri[1] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopRightX, (float)m_CameraCalibrationCfg->m_ImageTopRightY); - srcTri[2] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomRightX, (float)m_CameraCalibrationCfg->m_ImageBottomRightY); - srcTri[3] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomLeftX, (float)m_CameraCalibrationCfg->m_ImageBottomLeftY); + srcTri[0] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopLeftX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageTopLeftY->GetValue()); + srcTri[1] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopRightX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageTopRightY->GetValue()); + srcTri[2] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomRightX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageBottomRightY->GetValue()); + srcTri[3] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomLeftX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageBottomLeftY->GetValue()); cv::Point2f tempTri[4]; - int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX - m_CameraCalibrationCfg->m_PlatformTopLeftX) * m_CameraCalibrationCfg->m_MagnifyScale; - int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY - m_CameraCalibrationCfg->m_PlatformBottomRightY) * m_CameraCalibrationCfg->m_MagnifyScale; + int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX->GetValue() - m_CameraCalibrationCfg->m_PlatformTopLeftX->GetValue()) * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); + int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY->GetValue() - m_CameraCalibrationCfg->m_PlatformBottomRightY->GetValue()) * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); tempTri[0] = cv::Point2f(0.0f, 0.0f); tempTri[1] = cv::Point2f((float)tx, 0.0f); @@ -1445,11 +1445,11 @@ cv::Mat Calibration::CalibrationWithCfgBin(cv::Mat image) //cv::boxFilter(tempImage, tempImage, -1, cv::Size(3, 3)); cv::blur(tempImage, tempImage, cv::Size(3, 3)); - if (m_CameraCalibrationCfg->m_BlackFace) { - cv::threshold(tempImage, tempImage, m_CameraCalibrationCfg->m_GrayRef - m_CameraCalibrationCfg->m_BinaryThresholdOffset, 255, cv::ThresholdTypes::THRESH_BINARY_INV); + if (m_CameraCalibrationCfg->m_BlackFace->GetValue()) { + cv::threshold(tempImage, tempImage, m_CameraCalibrationCfg->m_GrayRef->GetValue() - m_CameraCalibrationCfg->m_BinaryThresholdOffset->GetValue(), 255, cv::ThresholdTypes::THRESH_BINARY_INV); } else { - cv::threshold(tempImage, tempImage, m_CameraCalibrationCfg->m_GrayRef + m_CameraCalibrationCfg->m_BinaryThresholdOffset, 255, cv::ThresholdTypes::THRESH_BINARY); + cv::threshold(tempImage, tempImage, m_CameraCalibrationCfg->m_GrayRef->GetValue() + m_CameraCalibrationCfg->m_BinaryThresholdOffset->GetValue(), 255, cv::ThresholdTypes::THRESH_BINARY); } //cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(4, 4)); //morphologyEx(tempImage, tempImage, cv::MORPH_CLOSE, element); @@ -1461,33 +1461,33 @@ cv::Mat Calibration::CalibrationWithAssist(cv::Mat image) cv::Mat cameraMatrix = cv::Mat(3, 3, CV_64FC1, cv::Scalar::all(0)); //摄像机内参数矩阵 cv::Mat distCoeffs = cv::Mat(1, 5, CV_64FC1, cv::Scalar::all(0)); //摄像机的5个畸变系数:k1,k2,p1,p2,k3 - cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00; - cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01; - cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02; - cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10; - cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11; - cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12; - cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20; - cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21; - cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22; - distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0; - distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1; - distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2; - distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3; - distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4; + cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00->GetValue(); + cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01->GetValue(); + cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02->GetValue(); + cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10->GetValue(); + cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11->GetValue(); + cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12->GetValue(); + cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20->GetValue(); + cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21->GetValue(); + cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22->GetValue(); + distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0->GetValue(); + distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1->GetValue(); + distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2->GetValue(); + distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3->GetValue(); + distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4->GetValue(); cv::Mat calImage; undistort(image, calImage, cameraMatrix, distCoeffs); cv::Point2f srcTri[4]; - srcTri[0] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopLeftX, (float)m_CameraCalibrationCfg->m_ImageTopLeftY); - srcTri[1] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopRightX, (float)m_CameraCalibrationCfg->m_ImageTopRightY); - srcTri[2] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomRightX, (float)m_CameraCalibrationCfg->m_ImageBottomRightY); - srcTri[3] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomLeftX, (float)m_CameraCalibrationCfg->m_ImageBottomLeftY); + srcTri[0] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopLeftX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageTopLeftY->GetValue()); + srcTri[1] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageTopRightX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageTopRightY->GetValue()); + srcTri[2] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomRightX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageBottomRightY->GetValue()); + srcTri[3] = cv::Point2f((float)m_CameraCalibrationCfg->m_ImageBottomLeftX->GetValue(), (float)m_CameraCalibrationCfg->m_ImageBottomLeftY->GetValue()); cv::Point2f tempTri[4]; - int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX - m_CameraCalibrationCfg->m_PlatformTopLeftX) * m_CameraCalibrationCfg->m_MagnifyScale; - int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY - m_CameraCalibrationCfg->m_PlatformBottomRightY) * m_CameraCalibrationCfg->m_MagnifyScale; + int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX->GetValue() - m_CameraCalibrationCfg->m_PlatformTopLeftX->GetValue()) * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); + int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY->GetValue() - m_CameraCalibrationCfg->m_PlatformBottomRightY->GetValue()) * m_CameraCalibrationCfg->m_MagnifyScale->GetValue(); tempTri[0] = cv::Point2f(0.0f, 0.0f); tempTri[1] = cv::Point2f((float)tx, 0.0f); @@ -1500,16 +1500,16 @@ cv::Mat Calibration::CalibrationWithAssist(cv::Mat image) cv::Mat tempImage; cv::blur(wm, tempImage, cv::Size(3, 3)); - if (m_CameraCalibrationCfg->m_ShowBinImage) { - if (m_CameraCalibrationCfg->m_BlackFace) { - cv::threshold(tempImage, tempImage, m_CameraCalibrationCfg->m_GrayRef - m_CameraCalibrationCfg->m_BinaryThresholdOffset, 255, cv::ThresholdTypes::THRESH_BINARY_INV); + if (m_CameraCalibrationCfg->m_ShowBinImage->GetValue()) { + if (m_CameraCalibrationCfg->m_BlackFace->GetValue()) { + cv::threshold(tempImage, tempImage, m_CameraCalibrationCfg->m_GrayRef->GetValue() - m_CameraCalibrationCfg->m_BinaryThresholdOffset->GetValue(), 255, cv::ThresholdTypes::THRESH_BINARY_INV); } else { - cv::threshold(tempImage, tempImage, m_CameraCalibrationCfg->m_GrayRef + m_CameraCalibrationCfg->m_BinaryThresholdOffset, 255, cv::ThresholdTypes::THRESH_BINARY); + cv::threshold(tempImage, tempImage, m_CameraCalibrationCfg->m_GrayRef->GetValue() + m_CameraCalibrationCfg->m_BinaryThresholdOffset->GetValue(), 255, cv::ThresholdTypes::THRESH_BINARY); } } else { - cv::Canny(tempImage, tempImage, m_CameraCalibrationCfg->m_GrayRef, m_CameraCalibrationCfg->m_GrayRef * 2, 3, true); + cv::Canny(tempImage, tempImage, m_CameraCalibrationCfg->m_GrayRef->GetValue(), m_CameraCalibrationCfg->m_GrayRef->GetValue() * 2, 3, true); } vector> contours; @@ -1597,7 +1597,7 @@ bool Calibration::CalibrationCameraRun() image_size.width = m_CalibrationImages.front()->m_ImageMat.cols; image_size.height = m_CalibrationImages.front()->m_ImageMat.rows; float prostep = 0.9f / m_CalibrationImages.size(); - cv::Size board_size = cv::Size(m_CameraCalibrationCfg->m_CalibrationHPoints, m_CameraCalibrationCfg->m_CalibrationVPoints); + cv::Size board_size = cv::Size(m_CameraCalibrationCfg->m_CalibrationHPoints->GetValue(), m_CameraCalibrationCfg->m_CalibrationVPoints->GetValue()); std::vector> image_points_seq; //保存检测到的所有角点 int calIndex = 0; float prog = 0.0f; @@ -1630,7 +1630,7 @@ bool Calibration::CalibrationCameraRun() } } - cv::Size square_size = cv::Size(m_CameraCalibrationCfg->m_CalibrationGridHSize, m_CameraCalibrationCfg->m_CalibrationGridVSize); + cv::Size square_size = cv::Size(m_CameraCalibrationCfg->m_CalibrationGridHSize->GetValue(), m_CameraCalibrationCfg->m_CalibrationGridVSize->GetValue()); std::vector> object_points; //保存标定板上角点的三维坐标 cv::Mat cameraMatrix = cv::Mat(3, 3, CV_64FC1, cv::Scalar::all(0)); //摄像机内参数矩阵 cv::Mat distCoeffs = cv::Mat(1, 5, CV_64FC1, cv::Scalar::all(0)); //摄像机的5个畸变系数:k1,k2,p1,p2,k3 @@ -1659,20 +1659,20 @@ bool Calibration::CalibrationCameraRun() double rel = cv::calibrateCamera(object_points, image_points_seq, image_size, cameraMatrix, distCoeffs, rvecsMat, tvecsMat, cv::CALIB_FIX_K3); if (rel) { - m_CameraCalibrationCfg->m_CameraMatrix00 = cameraMatrix.at(0, 0); - m_CameraCalibrationCfg->m_CameraMatrix01 = cameraMatrix.at(0, 1); - m_CameraCalibrationCfg->m_CameraMatrix02 = cameraMatrix.at(0, 2); - m_CameraCalibrationCfg->m_CameraMatrix10 = cameraMatrix.at(1, 0); - m_CameraCalibrationCfg->m_CameraMatrix11 = cameraMatrix.at(1, 1); - m_CameraCalibrationCfg->m_CameraMatrix12 = cameraMatrix.at(1, 2); - m_CameraCalibrationCfg->m_CameraMatrix20 = cameraMatrix.at(2, 0); - m_CameraCalibrationCfg->m_CameraMatrix21 = cameraMatrix.at(2, 1); - m_CameraCalibrationCfg->m_CameraMatrix22 = cameraMatrix.at(2, 2); - m_CameraCalibrationCfg->m_DistCoeffs0 = distCoeffs.at(0, 0); - m_CameraCalibrationCfg->m_DistCoeffs1 = distCoeffs.at(0, 1); - m_CameraCalibrationCfg->m_DistCoeffs2 = distCoeffs.at(0, 2); - m_CameraCalibrationCfg->m_DistCoeffs3 = distCoeffs.at(0, 3); - m_CameraCalibrationCfg->m_DistCoeffs4 = distCoeffs.at(0, 4); + m_CameraCalibrationCfg->m_CameraMatrix00->SetValue( cameraMatrix.at(0, 0)); + m_CameraCalibrationCfg->m_CameraMatrix01->SetValue(cameraMatrix.at(0, 1)); + m_CameraCalibrationCfg->m_CameraMatrix02->SetValue(cameraMatrix.at(0, 2)); + m_CameraCalibrationCfg->m_CameraMatrix10->SetValue(cameraMatrix.at(1, 0)); + m_CameraCalibrationCfg->m_CameraMatrix11->SetValue(cameraMatrix.at(1, 1)); + m_CameraCalibrationCfg->m_CameraMatrix12->SetValue(cameraMatrix.at(1, 2)); + m_CameraCalibrationCfg->m_CameraMatrix20->SetValue(cameraMatrix.at(2, 0)); + m_CameraCalibrationCfg->m_CameraMatrix21->SetValue(cameraMatrix.at(2, 1)); + m_CameraCalibrationCfg->m_CameraMatrix22->SetValue(cameraMatrix.at(2, 2)); + m_CameraCalibrationCfg->m_DistCoeffs0->SetValue(distCoeffs.at(0, 0)); + m_CameraCalibrationCfg->m_DistCoeffs1->SetValue(distCoeffs.at(0, 1)); + m_CameraCalibrationCfg->m_DistCoeffs2->SetValue(distCoeffs.at(0, 2)); + m_CameraCalibrationCfg->m_DistCoeffs3->SetValue(distCoeffs.at(0, 3)); + m_CameraCalibrationCfg->m_DistCoeffs4->SetValue(distCoeffs.at(0, 4)); ConfigManager::GetInstance()->SaveCameraCalibrationCfg(); string cfilePath = m_ImgPath + "Calibration.txt"; @@ -1757,7 +1757,7 @@ bool Calibration::CalibrationTest() } } } - cv::Size board_size = cv::Size(m_CameraCalibrationCfg->m_CalibrationHPoints, m_CameraCalibrationCfg->m_CalibrationVPoints); + cv::Size board_size = cv::Size(m_CameraCalibrationCfg->m_CalibrationHPoints->GetValue(), m_CameraCalibrationCfg->m_CalibrationVPoints->GetValue()); std::vector> image_points_seq; //保存检测到的所有角点 for (size_t imageInxex = 0; imageInxex < imageInput.size(); imageInxex++) { std::vector image_points; @@ -1812,20 +1812,20 @@ bool Calibration::CalibrationTest() double rel = cv::calibrateCamera(object_points, image_points_seq, image_size, cameraMatrix, distCoeffs, rvecsMat, tvecsMat, cv::CALIB_FIX_K3); if (rel) { - m_CameraCalibrationCfg->m_CameraMatrix00 = cameraMatrix.at(0, 0); - m_CameraCalibrationCfg->m_CameraMatrix01 = cameraMatrix.at(0, 1); - m_CameraCalibrationCfg->m_CameraMatrix02 = cameraMatrix.at(0, 2); - m_CameraCalibrationCfg->m_CameraMatrix10 = cameraMatrix.at(1, 0); - m_CameraCalibrationCfg->m_CameraMatrix11 = cameraMatrix.at(1, 1); - m_CameraCalibrationCfg->m_CameraMatrix12 = cameraMatrix.at(1, 2); - m_CameraCalibrationCfg->m_CameraMatrix20 = cameraMatrix.at(2, 0); - m_CameraCalibrationCfg->m_CameraMatrix21 = cameraMatrix.at(2, 1); - m_CameraCalibrationCfg->m_CameraMatrix22 = cameraMatrix.at(2, 2); - m_CameraCalibrationCfg->m_DistCoeffs0 = distCoeffs.at(0, 0); - m_CameraCalibrationCfg->m_DistCoeffs1 = distCoeffs.at(0, 1); - m_CameraCalibrationCfg->m_DistCoeffs2 = distCoeffs.at(0, 2); - m_CameraCalibrationCfg->m_DistCoeffs3 = distCoeffs.at(0, 3); - m_CameraCalibrationCfg->m_DistCoeffs4 = distCoeffs.at(0, 4); + m_CameraCalibrationCfg->m_CameraMatrix00->SetValue(cameraMatrix.at(0, 0)); + m_CameraCalibrationCfg->m_CameraMatrix01->SetValue(cameraMatrix.at(0, 1)); + m_CameraCalibrationCfg->m_CameraMatrix02->SetValue(cameraMatrix.at(0, 2)); + m_CameraCalibrationCfg->m_CameraMatrix10->SetValue(cameraMatrix.at(1, 0)); + m_CameraCalibrationCfg->m_CameraMatrix11->SetValue(cameraMatrix.at(1, 1)); + m_CameraCalibrationCfg->m_CameraMatrix12->SetValue(cameraMatrix.at(1, 2)); + m_CameraCalibrationCfg->m_CameraMatrix20->SetValue(cameraMatrix.at(2, 0)); + m_CameraCalibrationCfg->m_CameraMatrix21->SetValue(cameraMatrix.at(2, 1)); + m_CameraCalibrationCfg->m_CameraMatrix22->SetValue(cameraMatrix.at(2, 2)); + m_CameraCalibrationCfg->m_DistCoeffs0->SetValue(distCoeffs.at(0, 0)); + m_CameraCalibrationCfg->m_DistCoeffs1->SetValue(distCoeffs.at(0, 1)); + m_CameraCalibrationCfg->m_DistCoeffs2->SetValue(distCoeffs.at(0, 2)); + m_CameraCalibrationCfg->m_DistCoeffs3->SetValue(distCoeffs.at(0, 3)); + m_CameraCalibrationCfg->m_DistCoeffs4->SetValue(distCoeffs.at(0, 4)); ConfigManager::GetInstance()->SaveCameraCalibrationCfg(); ofstream fout("g:/Calibration3/Calibration.txt"); @@ -1855,10 +1855,10 @@ bool Calibration::CalibrationTest() void Calibration::Test() { cv::Point2f srcTri[4]; - srcTri[0] = cv::Point2f(m_CameraCalibrationCfg->m_ImageTopLeftX, m_CameraCalibrationCfg->m_ImageTopLeftY); - srcTri[1] = cv::Point2f(m_CameraCalibrationCfg->m_ImageTopRightX, m_CameraCalibrationCfg->m_ImageTopRightY); - srcTri[2] = cv::Point2f(m_CameraCalibrationCfg->m_ImageBottomRightX, m_CameraCalibrationCfg->m_ImageBottomRightY); - srcTri[3] = cv::Point2f(m_CameraCalibrationCfg->m_ImageBottomLeftX, m_CameraCalibrationCfg->m_ImageBottomLeftY); + srcTri[0] = cv::Point2f(m_CameraCalibrationCfg->m_ImageTopLeftX->GetValue(), m_CameraCalibrationCfg->m_ImageTopLeftY->GetValue()); + srcTri[1] = cv::Point2f(m_CameraCalibrationCfg->m_ImageTopRightX->GetValue(), m_CameraCalibrationCfg->m_ImageTopRightY->GetValue()); + srcTri[2] = cv::Point2f(m_CameraCalibrationCfg->m_ImageBottomRightX->GetValue(), m_CameraCalibrationCfg->m_ImageBottomRightY->GetValue()); + srcTri[3] = cv::Point2f(m_CameraCalibrationCfg->m_ImageBottomLeftX->GetValue(), m_CameraCalibrationCfg->m_ImageBottomLeftY->GetValue()); cv::Point2f tempTri[4]; // Mat warp_mat = getPerspectiveTransform(srcTri, dstTri); @@ -1867,8 +1867,8 @@ void Calibration::Test() tempTri[2] = cv::Point2f(m_CameraCalibrationCfg->m_PlatformBottomRightX, m_CameraCalibrationCfg->m_PlatformBottomRightY); tempTri[3] = cv::Point2f(m_CameraCalibrationCfg->m_PlatformBottomLeftX, m_CameraCalibrationCfg->m_PlatformBottomLeftY);*/ int tlx = 0, tly = 0; - int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX - m_CameraCalibrationCfg->m_PlatformTopLeftX) * 10; - int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY - m_CameraCalibrationCfg->m_PlatformBottomRightY) * 10; + int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX->GetValue() - m_CameraCalibrationCfg->m_PlatformTopLeftX->GetValue()) * 10; + int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY->GetValue() - m_CameraCalibrationCfg->m_PlatformBottomRightY->GetValue()) * 10; tempTri[0] = cv::Point2f(0, 0); tempTri[1] = cv::Point2f(tx, 0); tempTri[2] = cv::Point2f(tx, ty); @@ -1884,20 +1884,20 @@ void Calibration::Test() cv::Mat cameraMatrix = cv::Mat(3, 3, CV_64FC1, cv::Scalar::all(0)); //摄像机内参数矩阵 cv::Mat distCoeffs = cv::Mat(1, 5, CV_64FC1, cv::Scalar::all(0)); //摄像机的5个畸变系数:k1,k2,p1,p2,k3 try { - cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00; - cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01; - cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02; - cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10; - cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11; - cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12; - cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20; - cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21; - cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22; - distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0; - distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1; - distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2; - distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3; - distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4; + cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00->GetValue(); + cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01->GetValue(); + cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02->GetValue(); + cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10->GetValue(); + cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11->GetValue(); + cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12->GetValue(); + cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20->GetValue(); + cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21->GetValue(); + cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22->GetValue(); + distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0->GetValue(); + distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1->GetValue(); + distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2->GetValue(); + distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3->GetValue(); + distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4->GetValue(); } catch (cv::Exception& e) { OutputDebugString(e.msg.c_str()); @@ -1974,33 +1974,33 @@ void Calibration::Assist() cv::Mat cameraMatrix = cv::Mat(3, 3, CV_64FC1, cv::Scalar::all(0)); //摄像机内参数矩阵 cv::Mat distCoeffs = cv::Mat(1, 5, CV_64FC1, cv::Scalar::all(0)); //摄像机的5个畸变系数:k1,k2,p1,p2,k3 - cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00; - cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01; - cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02; - cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10; - cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11; - cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12; - cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20; - cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21; - cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22; - distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0; - distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1; - distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2; - distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3; - distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4; + cameraMatrix.at(0, 0) = m_CameraCalibrationCfg->m_CameraMatrix00->GetValue(); + cameraMatrix.at(0, 1) = m_CameraCalibrationCfg->m_CameraMatrix01->GetValue(); + cameraMatrix.at(0, 2) = m_CameraCalibrationCfg->m_CameraMatrix02->GetValue(); + cameraMatrix.at(1, 0) = m_CameraCalibrationCfg->m_CameraMatrix10->GetValue(); + cameraMatrix.at(1, 1) = m_CameraCalibrationCfg->m_CameraMatrix11->GetValue(); + cameraMatrix.at(1, 2) = m_CameraCalibrationCfg->m_CameraMatrix12->GetValue(); + cameraMatrix.at(2, 0) = m_CameraCalibrationCfg->m_CameraMatrix20->GetValue(); + cameraMatrix.at(2, 1) = m_CameraCalibrationCfg->m_CameraMatrix21->GetValue(); + cameraMatrix.at(2, 2) = m_CameraCalibrationCfg->m_CameraMatrix22->GetValue(); + distCoeffs.at(0, 0) = m_CameraCalibrationCfg->m_DistCoeffs0->GetValue(); + distCoeffs.at(0, 1) = m_CameraCalibrationCfg->m_DistCoeffs1->GetValue(); + distCoeffs.at(0, 2) = m_CameraCalibrationCfg->m_DistCoeffs2->GetValue(); + distCoeffs.at(0, 3) = m_CameraCalibrationCfg->m_DistCoeffs3->GetValue(); + distCoeffs.at(0, 4) = m_CameraCalibrationCfg->m_DistCoeffs4->GetValue(); cv::Mat cb_final; undistort(srcTemp, cb_final, cameraMatrix, distCoeffs); cv::imwrite("g:/Calibration3/test_und.png", cb_final); cv::Point2f srcTri[4]; - srcTri[0] = cv::Point2f(m_CameraCalibrationCfg->m_ImageTopLeftX, m_CameraCalibrationCfg->m_ImageTopLeftY); - srcTri[1] = cv::Point2f(m_CameraCalibrationCfg->m_ImageTopRightX, m_CameraCalibrationCfg->m_ImageTopRightY); - srcTri[2] = cv::Point2f(m_CameraCalibrationCfg->m_ImageBottomRightX, m_CameraCalibrationCfg->m_ImageBottomRightY); - srcTri[3] = cv::Point2f(m_CameraCalibrationCfg->m_ImageBottomLeftX, m_CameraCalibrationCfg->m_ImageBottomLeftY); + srcTri[0] = cv::Point2f(m_CameraCalibrationCfg->m_ImageTopLeftX->GetValue(), m_CameraCalibrationCfg->m_ImageTopLeftY->GetValue()); + srcTri[1] = cv::Point2f(m_CameraCalibrationCfg->m_ImageTopRightX->GetValue(), m_CameraCalibrationCfg->m_ImageTopRightY->GetValue()); + srcTri[2] = cv::Point2f(m_CameraCalibrationCfg->m_ImageBottomRightX->GetValue(), m_CameraCalibrationCfg->m_ImageBottomRightY->GetValue()); + srcTri[3] = cv::Point2f(m_CameraCalibrationCfg->m_ImageBottomLeftX->GetValue(), m_CameraCalibrationCfg->m_ImageBottomLeftY->GetValue()); cv::Point2f tempTri[4]; int tlx = 0, tly = 0; - int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX - m_CameraCalibrationCfg->m_PlatformTopLeftX) * 10; - int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY - m_CameraCalibrationCfg->m_PlatformBottomRightY) * 10; + int tx = (m_CameraCalibrationCfg->m_PlatformTopRightX->GetValue() - m_CameraCalibrationCfg->m_PlatformTopLeftX->GetValue()) * 10; + int ty = (m_CameraCalibrationCfg->m_PlatformTopRightY->GetValue() - m_CameraCalibrationCfg->m_PlatformBottomRightY->GetValue()) * 10; tempTri[0] = cv::Point2f(0, 0); tempTri[1] = cv::Point2f(tx, 0); tempTri[2] = cv::Point2f(tx, ty); diff --git a/PrintS/job/MetaData.h b/PrintS/job/MetaData.h index d47f54a..d35028c 100644 --- a/PrintS/job/MetaData.h +++ b/PrintS/job/MetaData.h @@ -470,15 +470,15 @@ public: void UnLockPart() { LeaveCriticalSection(&partCs); } string GetJobTitle(void) { return general_info->job_name; } - unsigned int GetLayerCount(void) { return layers->vector_layers.size(); } - unsigned int GetComponentCount(void) { return partsMap.size(); } + unsigned int GetLayerCount(void) { return (unsigned int)layers->vector_layers.size(); } + unsigned int GetComponentCount(void) { return (unsigned int)partsMap.size(); } Layer* GetLayer(unsigned int id); string GetJobUid(void) { return job_id; } void GetPartId(int layerIndex, set& partIds); // float GetProgress(void) { return m_ProgressValue; } //string GetProgressInfo(); float PowderRequiretment(void); - unsigned int GetNumOfScanField() { return machine_type->scanFields.size(); } + unsigned int GetNumOfScanField() { return (unsigned int)machine_type->scanFields.size(); } vector* GetScanFields() { return &machine_type->scanFields; } diff --git a/PrintS/output/Release/log/2024.hbd b/PrintS/output/Release/log/2024.hbd index 780f7def8c06477195c6d572d55ccf011b135525..a8b501453affb6f642a969a75bc25015788a93b6 100644 GIT binary patch delta 16533 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 MrI>`3s#r_!Na!RgHUIzs delta 16533 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 #include -//#define DELP(p) if(p){delete p; p = nullptr;} enum READTYPE { ALARM = 0, //报警 @@ -43,6 +42,7 @@ enum READTYPE { INFRAREDTEMPCFGPARAM, //InfraredTempCfg 参数 MACHINECFGPARAM, //MachineCfg 参数 FAVORITECFGPARAM, //FavoriteCfg 参数 + CAMERACALIBRATIONCFGPARAM, MOLDCFGPARAM, LOADCFGPARAM, @@ -119,6 +119,7 @@ enum WRITETYPE { INFRAREDTEMPCFG, MACHINECFG, FAVORITECFG, + CAMERACALIBRATIONCFG, LOADPARAM, //装载参数