#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 SaveDefectImage2(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;
|
};
|