#pragma once #include "ui_CToolDialog.h" #include "../../Common/DllToolCommon.h" #include "../../ShowUnit/HWndUnit.h" #include class ToolDialogImpl : public DllToolDialog { Q_OBJECT public: ToolDialogImpl(QWidget *parent = Q_NULLPTR); ~ToolDialogImpl(); private: Ui::CToolDialog ui; public: virtual VPEnum::RETURN_VALUE Execute(); virtual void Running(bool bRun); virtual void timerEvent(QTimerEvent* event); virtual bool Serialized(QDataStream& ar, bool bIsOut); signals: void sigUpdateUI(); private slots: void on_UpdateUI(); void on_ROIChange(const ViewMessage& sign); void on_btnOK_clicked(); void on_btnCancel_clicked(); void on_btnExecute_clicked(); private: // 窗口管理变量 HWndUnit* hwndUnit; ROIController m_RoiController; HTuple hv_roiDateR0; HTuple hv_roiDateR1; // 在此处添加需要导出的变量 public: HImage m_Image; HObject m_hoROI_R0; HObject m_hoROI_R1; float m_fMeasureMax; float m_fMeasureMin; float m_fMeasureValue; int m_nStatus; // 在此处添加内部需要使用的变量 private: void Find_Edges(HObject ho_Image, HObject* ho_Regions, HTuple hv_Row, HTuple hv_Column, HTuple hv_Phi, HTuple hv_Length1, HTuple hv_Length2, HTuple hv_Elements, HTuple hv_Sigma, HTuple hv_Threshold, int nTransitionMode, int nSelectMode, HTuple* hv_ResultRow, HTuple* hv_ResultColumn); void gen_arrow_contour_xld(HObject* ho_Arrow, HTuple hv_Row1, HTuple hv_Column1, HTuple hv_Row2, HTuple hv_Column2, HTuple hv_HeadLength, HTuple hv_HeadWidth); void GenArrowContourXld(HObject* ho_Arrow, HTuple hv_Row1, HTuple hv_Column1, HTuple hv_Row2, HTuple hv_Column2, HTuple hv_HeadLength, HTuple hv_HeadWidth); void pts_to_best_line(HObject* ho_Line, HTuple hv_Rows, HTuple hv_Cols, HTuple hv_ActiveNum, HTuple* hv_Row1, HTuple* hv_Col1, HTuple* hv_Row2, HTuple* hv_Col2, int nAlgorithmMode); double m_fSigma_0; //直线边缘点滤波系数 int m_nThreshold_0; //直线边缘点阈值 int m_nElementSize_0; //rake工具卡尺数 int m_nMinPointsNum_0; //拟合直线最少点数 int m_nTransitionMode_0; //直线边缘点极性 int m_nSelectMode_0; //直线边缘点的位置 double m_fSigma_1; //直线边缘点滤波系数 int m_nThreshold_1; //直线边缘点阈值 int m_nElementSize_1; //rake工具卡尺数 int m_nMinPointsNum_1; //拟合直线最少点数 int m_nTransitionMode_1; //直线边缘点极性 int m_nSelectMode_1; //直线边缘点的位置 int m_nValueMode; //测量模式(均值,最大,最小) double m_fJudgeMax; //判断最大值 double m_fJudgeMin; //判断最大值 double m_fVlaueScale; // 比例系数 };