#pragma once #include "AssemDefect.h" #include "PairStorage.h" class AFX_EXT_CLASS CBlobStorage : public CPairStorage { public: CBlobStorage(void); virtual ~CBlobStorage(void); int m_nBlob; CDefectBlob *m_pBlobDefect; int m_maxBlob; int m_nBlobSpace; double m_BlobTime;; public: int InitBlobStorage(int maxBlob= 10000); void ResetBlobStorage() ; void TotalResetBlobStorage() ;// ÃʱâÈ­ ½Ã°£ ´ÜÃàÀ» À§ÇØ TotalReset °è¿­ ÇÔ¼ö Ãß°¡. int GetBlobCount() {return m_nBlob;} CDefectBlob* GetBlobDefect(int i){return m_pBlobDefect+ i;} public: // Blobing ±âº» ÀÎÅÍÆäÀ̽º DIT_RESULT BlobDefect(); DIT_RESULT BlobDefect_NonFilter(); DIT_RESULT BlobDefectVert(); DIT_RESULT BlobDefectVert_NonFilter(); DIT_RESULT BlobDefectVert(CPairStorage *pPairStrg); // Filtering °ü·Ã. void ShadowFilter(int nStart, double xPitch); void ShadowFilterVert(int nStart, double yPitch); int GetConvolutionValue(int nX, int nY, double dDist, int nSuppress = 255); int GetConvolutionValueVert(int nX, int nY, double dDist, int nSuppress = 255); int GetAreaValue(int nXStart, int nYStart, int nWidth, int nHeight, double dDist, int nSuppress = 255); int GetAreaValueVert(int nXStart, int nYStart, int nWidth, int nHeight, double dDist, int nSuppress = 255); // PostProcess °ü·Ã. void CheckDefectRect(CDefectBlob& Defect, int nX, int nY); int CalcRScale(CPoint* pVertex); BOOL ReadBlob(CBlobStorage *pBlobStrg); BOOL AddBlob(CDefectBlob *pBlob); // ´Ù Áö¿ö¶ó. DIT_RESULT BlobDefect2(); DIT_RESULT BlobDefect_old(); DIT_RESULT BlobUnpairDefect(); DIT_RESULT MergeDivision(int nStart, int nMergePixel); DIT_RESULT MergeMix(int nStart, int nMergePixel); DIT_RESULT ClassificationDefect(int nStart); BOOL ClassifyVertical(int nPairedIdx, int nThreshold); DIT_RESULT ClassificationDefectVert(int nStart); long m_nSkipUnpaired; long m_nSkipClassify; long m_nMoveClassify; long m_nSkipMerged; };