#pragma once #include "Global_Define.h" #include "HardwareSettings.h" #include "GlassRecipe.h" #include "Transfer_Data.h" #include "InspectCamera.h" #include "Defect.h" enum EM_RESULT_PATH{EM_RESULT_FILE=0, EM_RESULT_DEFECT, EM_RESULT_FULL, EM_RESULT_MARK}; class CPostProcess { public: CPostProcess(void); virtual ~CPostProcess(void); public: virtual BOOL InitPostProcessing(); virtual BOOL RunPostProcessing(); virtual BOOL RunPostProcessing_SaveDefectInfo(); virtual BOOL RunPostProcessing_SaveFiltImage(); virtual BOOL ProcessingScanEnd(); virtual CString GetResultPath(EM_RESULT_PATH ePath); void SetInspectCamera(int iCam,CInspectCamera *pIns); void SetPrameter(CGlass_Data *pGlsData,CHardwareSettings *pHW,CGlassRecipe *pRecipe,CTransfer_Data *pTransData); void WriteSetupData(); protected: void JudgementData(); void SaveDefectImageNG(); void SaveDefectImageOK(); void SaveDefectData(); void MergeDefect(); void CalcGlassSize(); void PostDefectJudgeProcess(); int GetInspectionDefect(); BOOL DefectProcess_Judge(CDefect *pDefect); BOOL DefectProcess(CDefect* pDefect,CInspectCamera *pInspect, CCameraSettings* pCamera); BOOL SaveDefectImage(LPBYTE pImage,CSize szImage,CRect rectDefect,CString strFile,DimensionDir emDir); BOOL SaveDefectImageModern(LPBYTE pImage,CSize szImage,CRect rectDefect,CString strFile); BOOL SaveDefectImage_with_Title(CDefect* pDefect, CSize szImage, CRect rectDefect, CString strFile, CvScalar color = cvScalar(0, 0, 255)); int MeasrueCutLineResult(DimensionDir dir); void WriteMapFile(); void WriteDefectFile(); void WriteDataFile(); public: void SetView(void* pView) {m_pView = pView;} protected: BOOL CheckDirectory(const TCHAR szPathName[], BOOL bDelete = FALSE); BOOL CreateDataDirectory(); BOOL DeleteFolder(const CString &strFolder); private: CRITICAL_SECTION m_criticalSection; //?¥3aá? inline void Lock() { ::InitializeCriticalSection(&m_criticalSection); } inline void Unlock() { ::DeleteCriticalSection(&m_criticalSection); } protected: CGlass_Data *m_pGlassData; CHardwareSettings *m_pHardware; CGlassRecipe *m_pRecipe; CTransfer_Data *m_pTransData; CInspectCamera *m_pInspectCamera[MAX_CAMERA_COUNT]; CString m_strResultFolder; CString m_strDefectFolder; CString m_strSplineFolder; CString m_strFullImgeFolder; CString m_strImageMarkFolder; void* m_pView; };