GrayopenTool.cpp 2.8 KB

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