#include "dialogalgoarg.h" #include "ui_dialogalgoarg.h" #include "PathManager.h" #include "VrLog.h" DialogAlgoArg::DialogAlgoArg(IVrWheelMeasureConfig* config, WheelMeasureConfigResult* configResult, QWidget *parent) : QDialog(parent) , ui(new Ui::DialogAlgoArg) , m_config(config) , m_configResult(configResult) { ui->setupUi(this); } DialogAlgoArg::~DialogAlgoArg() { delete ui; } void DialogAlgoArg::Init() { loadParams(); } void DialogAlgoArg::loadParams() { if (!m_configResult) { return; } // 加载角点参数 ui->edit_minEndingGap->setText(QString::number(m_configResult->algorithmParams.cornerParam.minEndingGap)); ui->edit_minEndingGap_z->setText(QString::number(m_configResult->algorithmParams.cornerParam.minEndingGap_z)); ui->edit_scale->setText(QString::number(m_configResult->algorithmParams.cornerParam.scale)); ui->edit_cornerTh->setText(QString::number(m_configResult->algorithmParams.cornerParam.cornerTh)); ui->edit_jumpCornerTh_1->setText(QString::number(m_configResult->algorithmParams.cornerParam.jumpCornerTh_1)); ui->edit_jumpCornerTh_2->setText(QString::number(m_configResult->algorithmParams.cornerParam.jumpCornerTh_2)); // 加载线段参数 ui->edit_segGapTh_y->setText(QString::number(m_configResult->algorithmParams.lineSegParam.segGapTh_y)); ui->edit_segGapTh_z->setText(QString::number(m_configResult->algorithmParams.lineSegParam.segGapTh_z)); ui->edit_maxDist->setText(QString::number(m_configResult->algorithmParams.lineSegParam.maxDist)); // 加载过滤参数 ui->edit_continuityTh->setText(QString::number(m_configResult->algorithmParams.filterParam.continuityTh)); ui->edit_outlierTh->setText(QString::number(m_configResult->algorithmParams.filterParam.outlierTh)); // 加载树生长参数 ui->edit_yDeviation_max->setText(QString::number(m_configResult->algorithmParams.growParam.yDeviation_max)); ui->edit_zDeviation_max->setText(QString::number(m_configResult->algorithmParams.growParam.zDeviation_max)); ui->edit_maxLineSkipNum->setText(QString::number(m_configResult->algorithmParams.growParam.maxLineSkipNum)); ui->edit_maxSkipDistance->setText(QString::number(m_configResult->algorithmParams.growParam.maxSkipDistance)); ui->edit_minLTypeTreeLen->setText(QString::number(m_configResult->algorithmParams.growParam.minLTypeTreeLen)); ui->edit_minVTypeTreeLen->setText(QString::number(m_configResult->algorithmParams.growParam.minVTypeTreeLen)); } void DialogAlgoArg::saveParams() { if (!m_configResult || !m_config) { return; } // 保存角点参数 m_configResult->algorithmParams.cornerParam.minEndingGap = ui->edit_minEndingGap->text().toDouble(); m_configResult->algorithmParams.cornerParam.minEndingGap_z = ui->edit_minEndingGap_z->text().toDouble(); m_configResult->algorithmParams.cornerParam.scale = ui->edit_scale->text().toDouble(); m_configResult->algorithmParams.cornerParam.cornerTh = ui->edit_cornerTh->text().toDouble(); m_configResult->algorithmParams.cornerParam.jumpCornerTh_1 = ui->edit_jumpCornerTh_1->text().toDouble(); m_configResult->algorithmParams.cornerParam.jumpCornerTh_2 = ui->edit_jumpCornerTh_2->text().toDouble(); // 保存线段参数 m_configResult->algorithmParams.lineSegParam.segGapTh_y = ui->edit_segGapTh_y->text().toDouble(); m_configResult->algorithmParams.lineSegParam.segGapTh_z = ui->edit_segGapTh_z->text().toDouble(); m_configResult->algorithmParams.lineSegParam.maxDist = ui->edit_maxDist->text().toDouble(); // 保存过滤参数 m_configResult->algorithmParams.filterParam.continuityTh = ui->edit_continuityTh->text().toDouble(); m_configResult->algorithmParams.filterParam.outlierTh = ui->edit_outlierTh->text().toDouble(); // 保存树生长参数 m_configResult->algorithmParams.growParam.yDeviation_max = ui->edit_yDeviation_max->text().toDouble(); m_configResult->algorithmParams.growParam.zDeviation_max = ui->edit_zDeviation_max->text().toDouble(); m_configResult->algorithmParams.growParam.maxLineSkipNum = ui->edit_maxLineSkipNum->text().toInt(); m_configResult->algorithmParams.growParam.maxSkipDistance = ui->edit_maxSkipDistance->text().toDouble(); m_configResult->algorithmParams.growParam.minLTypeTreeLen = ui->edit_minLTypeTreeLen->text().toDouble(); m_configResult->algorithmParams.growParam.minVTypeTreeLen = ui->edit_minVTypeTreeLen->text().toDouble(); // 保存到文件 QString configPath = PathManager::GetInstance().GetConfigFilePath(); m_config->SaveConfig(configPath.toStdString(), *m_configResult); } void DialogAlgoArg::on_btn_apply_clicked() { saveParams(); accept(); } void DialogAlgoArg::on_btn_cancel_clicked() { reject(); }