#pragma once
|
|
class CPitchStat;
|
class CDefectStorage;
|
class CMosisAssem;
|
class CMosisBuffer;
|
class CInspectParam;
|
class CAssemControl;
|
|
struct SReviewDefectFindResult
|
{
|
SReviewDefectFindResult()
|
{
|
nResultCode = -1;
|
|
sDefectPeak = 0;
|
nDefectRScale = 0;
|
nDefectArea = 0;
|
nDefectPosX = 0;
|
nDefectPosY = 0;
|
rtDefectRect = CRect(0,0,0,0);
|
dDefectPitch = 0.0;
|
}
|
|
int nResultCode;
|
short sDefectPeak;
|
int nDefectRScale;
|
int nDefectArea;
|
int nDefectPosX;
|
int nDefectPosY;
|
CRect rtDefectRect;
|
double dDefectPitch;
|
};
|
|
struct SReviewDefectFindParam
|
{
|
SReviewDefectFindParam()
|
{
|
nDirection = 0;
|
dPitchX = 0.0;
|
dPitchY = 0.0;
|
dResolutionX = 0.0;
|
dResolutionY = 0.0;
|
nAutoPitchRange = 0;
|
nThreshold = 30;
|
nThreshold2 = 50;
|
nMergePixel = 8;
|
}
|
|
int nDirection;
|
double dPitchX;
|
double dPitchY;
|
double dResolutionX;
|
double dResolutionY;
|
int nAutoPitchRange;
|
int nThreshold;
|
int nThreshold2;
|
int nMergePixel;
|
};
|
|
class AFX_EXT_CLASS CReviewDefectFinder
|
{
|
public:
|
CReviewDefectFinder(void);
|
virtual ~CReviewDefectFinder(void);
|
|
void InitReviewDefectFinder();
|
BOOL FindDefect(BYTE* pImageData, int nWidth, int nHeight, double& dPitch, int nAutoPitchRange, int nThreshold, POINT& ptDefectPos, CRect& rtDefectPos);
|
BOOL FindDefect(BYTE* pImageData, int nWidth, int nHeight, const SReviewDefectFindParam& findParam, SReviewDefectFindResult& findResult);
|
|
protected:
|
CPitchStat* m_pPitchStat;
|
CDefectStorage* m_pDefectStorage;
|
CMosisBuffer* m_pImageBuffer;
|
CInspectParam* m_pConvParam;
|
CAssemControl* m_pAssemControl;
|
};
|