#include "EmphasizeTool.h" emphasizetool::emphasizetool(QWidget *parent) : ToolInterface(parent), ui(new Ui::emphasizetool) { ui->setupUi(this); ui->horizontalSlidermin->setMinimum(3); ui->horizontalSlidermin->setMaximum(201); ui->horizontalSlidermin->setSingleStep(1); ui->horizontalSlidermax->setMinimum(3); ui->horizontalSlidermax->setMaximum(201); ui->horizontalSlidermax->setSingleStep(1); ui->horizontalSliderxishu->setMinimum(3); ui->horizontalSliderxishu->setMaximum(200); ui->horizontalSliderxishu->setSingleStep(201); ui->horizontalSlidermin->setValue(3); ui->horizontalSlidermax->setValue(3); ui->horizontalSliderxishu->setValue(0.3); ui->label4->setText("3"); ui->label6->setText("3"); ui->label5->setText("0.3"); } emphasizetool::~emphasizetool() { delete ui; } bool emphasizetool::Serialized(QDataStream& ar, bool bIsOut) { int paranum;//参数数量 if (bIsOut)//保存参数流程 { paranum = 3; ar << paranum;//先保存参数数量 ar << (int)1 << m_nWidth; ar << (int)2 << m_nHeight; ar << (int)3 << m_fFactor; qDebug() << m_nHeight; } else//加载参数流程,参数加载顺序一定要跟保存顺序一致 { int nCurrentIndex = 0; int para; ar >> paranum;//读取参数数量 for (int i = 0; i < paranum; i++) { ar >> para; switch (para) { case 1: ar >> m_nWidth; break; case 2: ar >> m_nHeight; break; case 3: ar >> m_fFactor; break; default: { qWarning() << "Serialized(In) Error"; return false; } break; } } { ui->horizontalSlidermin->setValue(m_nWidth); ui->horizontalSlidermax->setValue(m_nHeight); ui->horizontalSliderxishu->setValue(m_fFactor * 10.0); ui->label4->setText(QString::number(m_nWidth)); ui->label6->setText(QString::number(m_nHeight)); ui->label5->setText(QString::number(m_fFactor, 'f', 1)); emit updateParameter(ShowParameter()); } } return true; } QString emphasizetool::ShowParameter() { QString str; m_nWidth = ui->horizontalSlidermin->value(); m_nHeight = ui->horizontalSlidermax->value(); m_fFactor = ui->horizontalSliderxishu->value() / 10.0; str += QString::number(m_nWidth); str += ","; str += QString::number(m_nHeight); str += ","; str += QString::number(m_fFactor, 'f', 1); return str; } int emphasizetool::Execute() { int result = 1; // m_nWidth = ui->horizontalSlidermin->value(); // m_nHeight = ui->horizontalSlidermax->value(); // m_fFactor = ui->horizontalSliderxishu->value() /10.0; QString XishuStr = QString::number(m_fFactor, 'f', 1); qDebug() << XishuStr.toDouble(); try { Emphasize(m_InImage, &m_OutImage, m_nWidth, m_nHeight, XishuStr.toDouble()); } catch(...) { } return result; } void emphasizetool::on_horizontalSlidermin_valueChanged(int value) { emit updateParameter(ShowParameter()); ui->label4->setText(QString::number(value)); } void emphasizetool::on_horizontalSlidermax_valueChanged(int value) { emit updateParameter(ShowParameter()); ui->label6->setText(QString::number(value)); } void emphasizetool::on_horizontalSliderxishu_valueChanged(int value) { emit updateParameter(ShowParameter()); ui->label5->setText(QString::number(value / 10.0, 'f', 1)); }