EmphasizeTool.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. #include "EmphasizeTool.h"
  2. emphasizetool::emphasizetool(QWidget *parent) : ToolInterface(parent), ui(new Ui::emphasizetool)
  3. {
  4. ui->setupUi(this);
  5. ui->horizontalSlidermin->setMinimum(3);
  6. ui->horizontalSlidermin->setMaximum(201);
  7. ui->horizontalSlidermin->setSingleStep(1);
  8. ui->horizontalSlidermax->setMinimum(3);
  9. ui->horizontalSlidermax->setMaximum(201);
  10. ui->horizontalSlidermax->setSingleStep(1);
  11. ui->horizontalSliderxishu->setMinimum(3);
  12. ui->horizontalSliderxishu->setMaximum(200);
  13. ui->horizontalSliderxishu->setSingleStep(201);
  14. ui->horizontalSlidermin->setValue(3);
  15. ui->horizontalSlidermax->setValue(3);
  16. ui->horizontalSliderxishu->setValue(0.3);
  17. ui->label4->setText("3");
  18. ui->label6->setText("3");
  19. ui->label5->setText("0.3");
  20. }
  21. emphasizetool::~emphasizetool()
  22. {
  23. delete ui;
  24. }
  25. bool emphasizetool::Serialized(QDataStream& ar, bool bIsOut)
  26. {
  27. int paranum;//参数数量
  28. if (bIsOut)//保存参数流程
  29. {
  30. paranum = 3;
  31. ar << paranum;//先保存参数数量
  32. ar << (int)1 << m_nWidth;
  33. ar << (int)2 << m_nHeight;
  34. ar << (int)3 << m_fFactor;
  35. qDebug() << m_nHeight;
  36. }
  37. else//加载参数流程,参数加载顺序一定要跟保存顺序一致
  38. {
  39. int nCurrentIndex = 0;
  40. int para;
  41. ar >> paranum;//读取参数数量
  42. for (int i = 0; i < paranum; i++)
  43. {
  44. ar >> para;
  45. switch (para)
  46. {
  47. case 1: ar >> m_nWidth; break;
  48. case 2: ar >> m_nHeight; break;
  49. case 3: ar >> m_fFactor; break;
  50. default:
  51. {
  52. qWarning() << "Serialized(In) Error";
  53. return false;
  54. }
  55. break;
  56. }
  57. }
  58. {
  59. ui->horizontalSlidermin->setValue(m_nWidth);
  60. ui->horizontalSlidermax->setValue(m_nHeight);
  61. ui->horizontalSliderxishu->setValue(m_fFactor * 10.0);
  62. ui->label4->setText(QString::number(m_nWidth));
  63. ui->label6->setText(QString::number(m_nHeight));
  64. ui->label5->setText(QString::number(m_fFactor, 'f', 1));
  65. emit updateParameter(ShowParameter());
  66. }
  67. }
  68. return true;
  69. }
  70. QString emphasizetool::ShowParameter()
  71. {
  72. QString str;
  73. m_nWidth = ui->horizontalSlidermin->value();
  74. m_nHeight = ui->horizontalSlidermax->value();
  75. m_fFactor = ui->horizontalSliderxishu->value() / 10.0;
  76. str += QString::number(m_nWidth);
  77. str += ",";
  78. str += QString::number(m_nHeight);
  79. str += ",";
  80. str += QString::number(m_fFactor, 'f', 1);
  81. return str;
  82. }
  83. int emphasizetool::Execute()
  84. {
  85. int result = 1;
  86. // m_nWidth = ui->horizontalSlidermin->value();
  87. // m_nHeight = ui->horizontalSlidermax->value();
  88. // m_fFactor = ui->horizontalSliderxishu->value() /10.0;
  89. QString XishuStr = QString::number(m_fFactor, 'f', 1);
  90. qDebug() << XishuStr.toDouble();
  91. try
  92. {
  93. Emphasize(m_InImage, &m_OutImage, m_nWidth, m_nHeight, XishuStr.toDouble());
  94. }
  95. catch(...)
  96. {
  97. }
  98. return result;
  99. }
  100. void emphasizetool::on_horizontalSlidermin_valueChanged(int value)
  101. {
  102. emit updateParameter(ShowParameter());
  103. ui->label4->setText(QString::number(value));
  104. }
  105. void emphasizetool::on_horizontalSlidermax_valueChanged(int value)
  106. {
  107. emit updateParameter(ShowParameter());
  108. ui->label6->setText(QString::number(value));
  109. }
  110. void emphasizetool::on_horizontalSliderxishu_valueChanged(int value)
  111. {
  112. emit updateParameter(ShowParameter());
  113. ui->label5->setText(QString::number(value / 10.0, 'f', 1));
  114. }