ToolDialog.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #pragma once
  2. #include "ui_CToolDialog.h"
  3. #include "../../Common/DllToolCommon.h"
  4. #include "../../ShowUnit/HWndUnit.h"
  5. #include <QBuffer>
  6. class ToolDialogImpl : public DllToolDialog
  7. {
  8. Q_OBJECT
  9. public:
  10. ToolDialogImpl(QWidget *parent = Q_NULLPTR);
  11. ~ToolDialogImpl();
  12. private:
  13. Ui::CToolDialog ui;
  14. public:
  15. virtual VPEnum::RETURN_VALUE Execute();
  16. virtual void Running(bool bRun);
  17. virtual void timerEvent(QTimerEvent* event);
  18. virtual bool Serialized(QDataStream& ar, bool bIsOut);
  19. signals:
  20. void sigUpdateUI();
  21. private slots:
  22. void on_UpdateUI();
  23. void on_ROIChange(const ViewMessage& sign);
  24. void on_btnOK_clicked();
  25. void on_btnCancel_clicked();
  26. void on_btnExecute_clicked();
  27. private:
  28. // 窗口管理变量
  29. HWndUnit* hwndUnit;
  30. ROIController m_RoiController;
  31. HTuple hv_roiDateR0;
  32. HTuple hv_roiDateR1;
  33. // 在此处添加需要导出的变量
  34. public:
  35. HImage m_Image;
  36. HObject m_hoROI_R0;
  37. HObject m_hoROI_R1;
  38. float m_fMeasureMax;
  39. float m_fMeasureMin;
  40. float m_fMeasureValue;
  41. int m_nStatus;
  42. // 在此处添加内部需要使用的变量
  43. private:
  44. void Find_Edges(HObject ho_Image, HObject* ho_Regions, HTuple hv_Row, HTuple hv_Column,
  45. HTuple hv_Phi, HTuple hv_Length1, HTuple hv_Length2, HTuple hv_Elements, HTuple hv_Sigma,
  46. HTuple hv_Threshold, int nTransitionMode, int nSelectMode, HTuple* hv_ResultRow,
  47. HTuple* hv_ResultColumn);
  48. void gen_arrow_contour_xld(HObject* ho_Arrow, HTuple hv_Row1, HTuple hv_Column1,
  49. HTuple hv_Row2, HTuple hv_Column2, HTuple hv_HeadLength, HTuple hv_HeadWidth);
  50. void GenArrowContourXld(HObject* ho_Arrow, HTuple hv_Row1, HTuple hv_Column1,
  51. HTuple hv_Row2, HTuple hv_Column2, HTuple hv_HeadLength, HTuple hv_HeadWidth);
  52. void pts_to_best_line(HObject* ho_Line, HTuple hv_Rows, HTuple hv_Cols, HTuple hv_ActiveNum,
  53. HTuple* hv_Row1, HTuple* hv_Col1, HTuple* hv_Row2, HTuple* hv_Col2, int nAlgorithmMode);
  54. double m_fSigma_0; //直线边缘点滤波系数
  55. int m_nThreshold_0; //直线边缘点阈值
  56. int m_nElementSize_0; //rake工具卡尺数
  57. int m_nMinPointsNum_0; //拟合直线最少点数
  58. int m_nTransitionMode_0; //直线边缘点极性
  59. int m_nSelectMode_0; //直线边缘点的位置
  60. double m_fSigma_1; //直线边缘点滤波系数
  61. int m_nThreshold_1; //直线边缘点阈值
  62. int m_nElementSize_1; //rake工具卡尺数
  63. int m_nMinPointsNum_1; //拟合直线最少点数
  64. int m_nTransitionMode_1; //直线边缘点极性
  65. int m_nSelectMode_1; //直线边缘点的位置
  66. int m_nValueMode; //测量模式(均值,最大,最小)
  67. double m_fJudgeMax; //判断最大值
  68. double m_fJudgeMin; //判断最大值
  69. double m_fVlaueScale; // 比例系数
  70. };