// Defect.cpp: implementation of the CInspectDefect class.
|
//
|
//////////////////////////////////////////////////////////////////////
|
|
#include "stdafx.h"
|
#include "InspectDefect.h"
|
|
#ifdef _DEBUG
|
#undef THIS_FILE
|
static char THIS_FILE[]=__FILE__;
|
#define new DEBUG_NEW
|
#endif
|
|
//////////////////////////////////////////////////////////////////////
|
// Construction/Destruction
|
//////////////////////////////////////////////////////////////////////
|
//edit by hik //µðÆåÆ® Á¤ÀÇ CLASS
|
|
CInspectDefect::CInspectDefect()
|
{
|
ResetDefect();
|
}
|
|
CInspectDefect::~CInspectDefect()
|
{
|
|
}
|
|
// Do not edit the following lines, which are needed by ClassWizard.
|
#if 0
|
BEGIN_MESSAGE_MAP(CInspectDefect, CObject)
|
//{{AFX_MSG_MAP(CInspectDefect)
|
//}}AFX_MSG_MAP
|
END_MESSAGE_MAP()
|
#endif // 0
|
|
void CInspectDefect::ResetDefect()
|
{
|
m_bJudgeDefect = FALSE;
|
m_nCameraIP = -1;
|
m_nCameraID = -1;
|
m_nScanIdx = -1;
|
m_nDir = -1;
|
m_nDefectIdx = -1;
|
m_nPixelConv = 0;
|
m_nPixelScan = 0;
|
m_nPixelSize = 0;
|
m_sPixelWidth = 0;
|
m_sPixelHeight = 0;
|
m_nDefectRScale = 0;
|
m_nLevelSrcMin = 0;
|
m_nLevelSrcMax = 0;
|
m_nLevelSrcAvg = 0;
|
m_nLevelRefMin = 0;
|
m_nLevelRefMax = 0;
|
m_nLevelRefAvg = 0;
|
m_nLevelDiffMin = 0;
|
m_nLevelDiffMax = 0;
|
m_nLevelDiffAvg = 0;
|
m_nProfileIdx = 0;
|
|
m_sThreshold = 0;
|
m_sDefectPeak = 0;
|
m_sDefectType = 0;
|
|
m_nPixelGlassStart = 0;
|
m_sDefectLoc = 0;
|
m_sSplineLoc = -1;
|
|
m_dwTickCount = 0;
|
|
m_nUMOriginX = -1;
|
m_nUMOriginY = -1;
|
m_nUMSizeX = 0;
|
m_nUMSizeY = 0;
|
m_nUMSize = 0;
|
m_nSideLoc = 0;
|
m_nCameraDir = 0;
|
|
m_strDefectPath.Empty();
|
}
|
|
|
CInspectDefect::CInspectDefect(const CInspectDefect& rhs)
|
{
|
if (this != &rhs)
|
{
|
m_nGlassDefectIdx = rhs.m_nGlassDefectIdx;
|
|
m_nProfileIdx = rhs.m_nProfileIdx;
|
m_nCameraID = rhs.m_nCameraID;
|
m_nScanIdx = rhs.m_nScanIdx;
|
m_nDir = rhs.m_nDir;
|
m_nDefectIdx = rhs.m_nDefectIdx;
|
|
m_nPixelConv = rhs.m_nPixelConv;
|
m_nPixelScan = rhs.m_nPixelScan;
|
m_nPixelSize = rhs.m_nPixelSize;
|
m_sPixelWidth = rhs.m_sPixelWidth;
|
m_sPixelHeight = rhs.m_sPixelHeight;
|
m_nDefectRScale = rhs.m_nDefectRScale;
|
m_nLevelSrcMin = rhs.m_nLevelSrcMin;
|
m_nLevelSrcMax = rhs.m_nLevelSrcMax;
|
m_nLevelSrcAvg = rhs.m_nLevelSrcAvg;
|
m_nLevelRefMin = rhs.m_nLevelRefMin;
|
m_nLevelRefMax = rhs.m_nLevelRefMax;
|
m_nLevelRefAvg = rhs.m_nLevelRefAvg;
|
m_nLevelDiffMin = rhs.m_nLevelDiffMin;
|
m_nLevelDiffMax = rhs.m_nLevelDiffMax;
|
m_nLevelDiffAvg = rhs.m_nLevelDiffAvg;
|
|
|
m_nPixelGlassStart = rhs.m_nPixelGlassStart;
|
m_sDefectLoc = rhs.m_sDefectLoc;
|
m_sSplineLoc = rhs.m_sSplineLoc;
|
m_sDefectType = rhs.m_sDefectType;
|
|
m_sDefectPeak = rhs.m_sDefectPeak;
|
m_sThreshold = rhs.m_sThreshold;
|
|
m_dwTickCount = rhs.m_dwTickCount;
|
|
m_nUMOriginX = rhs.m_nUMOriginX;
|
m_nUMOriginY = rhs.m_nUMOriginY;
|
m_nUMSizeX = rhs.m_nUMSizeX;
|
m_nUMSizeY = rhs.m_nUMSizeY;
|
m_nUMSize = rhs.m_nUMSize;
|
m_nSideLoc = rhs.m_nSideLoc;
|
m_nCameraDir = rhs.m_nCameraDir;
|
|
m_strDefectPath = rhs.m_strDefectPath;
|
m_bJudgeDefect = rhs.m_bJudgeDefect;
|
}
|
}
|
|
CInspectDefect& CInspectDefect::operator=(const CInspectDefect& rhs)
|
{
|
if (this != &rhs)
|
{
|
m_nGlassDefectIdx = rhs.m_nGlassDefectIdx;
|
|
m_nProfileIdx = rhs.m_nProfileIdx;
|
m_nCameraID = rhs.m_nCameraID;
|
m_nScanIdx = rhs.m_nScanIdx;
|
m_nDir = rhs.m_nDir;
|
m_nDefectIdx = rhs.m_nDefectIdx;
|
|
m_nPixelConv = rhs.m_nPixelConv;
|
m_nPixelScan = rhs.m_nPixelScan;
|
m_nPixelSize = rhs.m_nPixelSize;
|
m_sPixelWidth = rhs.m_sPixelWidth;
|
m_sPixelHeight = rhs.m_sPixelHeight;
|
m_nDefectRScale = rhs.m_nDefectRScale;
|
m_nLevelSrcMin = rhs.m_nLevelSrcMin;
|
m_nLevelSrcMax = rhs.m_nLevelSrcMax;
|
m_nLevelSrcAvg = rhs.m_nLevelSrcAvg;
|
m_nLevelRefMin = rhs.m_nLevelRefMin;
|
m_nLevelRefMax = rhs.m_nLevelRefMax;
|
m_nLevelRefAvg = rhs.m_nLevelRefAvg;
|
m_nLevelDiffMin = rhs.m_nLevelDiffMin;
|
m_nLevelDiffMax = rhs.m_nLevelDiffMax;
|
m_nLevelDiffAvg = rhs.m_nLevelDiffAvg;
|
m_nPixelGlassStart = rhs.m_nPixelGlassStart;
|
m_sDefectLoc = rhs.m_sDefectLoc;
|
m_sSplineLoc = rhs.m_sSplineLoc;
|
m_sDefectType = rhs.m_sDefectType;
|
|
m_sDefectPeak = rhs.m_sDefectPeak;
|
m_sThreshold = rhs.m_sThreshold;
|
|
m_dwTickCount = rhs.m_dwTickCount;
|
|
m_nUMOriginX = rhs.m_nUMOriginX;
|
m_nUMOriginY = rhs.m_nUMOriginY;
|
m_nUMSizeX = rhs.m_nUMSizeX;
|
m_nUMSizeY = rhs.m_nUMSizeY;
|
m_nUMSize = rhs.m_nUMSize;
|
m_nSideLoc = rhs.m_nSideLoc;
|
m_nCameraDir = rhs.m_nCameraDir;
|
|
m_strDefectPath = rhs.m_strDefectPath;
|
m_bJudgeDefect = rhs.m_bJudgeDefect;
|
}
|
|
return *this;
|
}
|
void CInspectDefect::Merge(const CInspectDefect& rhs)
|
{
|
//¹«°ÔÁß½ÉÀÇ Gray Á¤º¸ -À±Á¤¹Î-
|
m_nPixelConv = (m_nPixelConv + rhs.m_nPixelConv) / 2;
|
m_nPixelScan = (m_nPixelScan + rhs.m_nPixelScan) / 2;
|
m_nPixelSize = m_nPixelSize + rhs.m_nPixelSize;
|
m_sPixelWidth = m_sPixelWidth + rhs.m_sPixelWidth;
|
m_sPixelHeight = m_sPixelHeight + rhs.m_sPixelHeight;
|
m_nDefectRScale = m_nDefectRScale + rhs.m_nDefectRScale;
|
if (m_nLevelSrcMin > rhs.m_nLevelSrcMin)
|
m_nLevelSrcMin = rhs.m_nLevelSrcMin;
|
if (m_nLevelSrcMax < rhs.m_nLevelSrcMax)
|
m_nLevelSrcMax = rhs.m_nLevelSrcMax;
|
m_nLevelSrcAvg = (m_nLevelSrcAvg + rhs.m_nLevelSrcAvg) / 2;
|
if (m_nLevelRefMin > rhs.m_nLevelRefMin)
|
m_nLevelRefMin = rhs.m_nLevelRefMin;
|
if (m_nLevelRefMax < rhs.m_nLevelRefMax)
|
m_nLevelRefMax = rhs.m_nLevelRefMax;
|
m_nLevelRefAvg = (m_nLevelRefAvg + rhs.m_nLevelRefAvg) / 2;
|
if (m_nLevelDiffMin > rhs.m_nLevelDiffMin)
|
m_nLevelDiffMin = rhs.m_nLevelDiffMin;
|
if (m_nLevelDiffMax < rhs.m_nLevelDiffMax)
|
m_nLevelDiffMax = rhs.m_nLevelDiffMax;
|
m_nLevelDiffAvg = (m_nLevelDiffAvg + rhs.m_nLevelDiffAvg) / 2;
|
|
if (m_sDefectPeak < rhs.m_sDefectPeak)
|
m_sDefectPeak = rhs.m_sDefectPeak;
|
if (m_sThreshold < rhs.m_sThreshold)
|
m_sThreshold = rhs.m_sThreshold;
|
|
if (m_dwTickCount < rhs.m_dwTickCount)
|
m_dwTickCount = rhs.m_dwTickCount;
|
|
if (m_nPixelSize < rhs.m_nPixelSize)
|
{
|
m_nUMOriginX = rhs.m_nUMOriginX;
|
m_nUMOriginY = rhs.m_nUMOriginY;
|
}
|
m_nUMSizeX = m_nUMSizeX + rhs.m_nUMSizeX;
|
m_nUMSizeY = m_nUMSizeY + rhs.m_nUMSizeY;
|
m_nUMSize = m_nUMSize + rhs.m_nUMSize;
|
}
|
|
// + ¿¬»êÀÚ ¿À¹ö·Îµù.
|
CInspectDefect& CInspectDefect::operator+(const CInspectDefect& rhs)
|
{
|
|
m_nPixelConv = (m_nPixelConv + rhs.m_nPixelConv) / 2;
|
m_nPixelScan = (m_nPixelScan + rhs.m_nPixelScan) / 2;
|
m_nPixelSize = m_nPixelSize + rhs.m_nPixelSize;
|
m_sPixelWidth = m_sPixelWidth + rhs.m_sPixelWidth;
|
m_sPixelHeight = m_sPixelHeight + rhs.m_sPixelHeight;
|
m_nDefectRScale = m_nDefectRScale + rhs.m_nDefectRScale;
|
if (m_nLevelSrcMin > rhs.m_nLevelSrcMin)
|
m_nLevelSrcMin = rhs.m_nLevelSrcMin;
|
if (m_nLevelSrcMax < rhs.m_nLevelSrcMax)
|
m_nLevelSrcMax = rhs.m_nLevelSrcMax;
|
m_nLevelSrcAvg = (m_nLevelSrcAvg + rhs.m_nLevelSrcAvg) / 2;
|
if (m_nLevelRefMin > rhs.m_nLevelRefMin)
|
m_nLevelRefMin = rhs.m_nLevelRefMin;
|
if (m_nLevelRefMax < rhs.m_nLevelRefMax)
|
m_nLevelRefMax = rhs.m_nLevelRefMax;
|
m_nLevelRefAvg = (m_nLevelRefAvg + rhs.m_nLevelRefAvg) / 2;
|
if (m_nLevelDiffMin > rhs.m_nLevelDiffMin)
|
m_nLevelDiffMin = rhs.m_nLevelDiffMin;
|
if (m_nLevelDiffMax < rhs.m_nLevelDiffMax)
|
m_nLevelDiffMax = rhs.m_nLevelDiffMax;
|
m_nLevelDiffAvg = (m_nLevelDiffAvg + rhs.m_nLevelDiffAvg) / 2;
|
|
if (m_sDefectPeak < rhs.m_sDefectPeak)
|
m_sDefectPeak = rhs.m_sDefectPeak;
|
if (m_sThreshold < rhs.m_sThreshold)
|
m_sThreshold = rhs.m_sThreshold;
|
|
if (m_dwTickCount < rhs.m_dwTickCount)
|
m_dwTickCount = rhs.m_dwTickCount;
|
|
if (m_nPixelSize < rhs.m_nPixelSize)
|
{
|
m_nUMOriginX = rhs.m_nUMOriginX;
|
m_nUMOriginY = rhs.m_nUMOriginY;
|
}
|
m_nUMSizeX = m_nUMSizeX + rhs.m_nUMSizeX;
|
m_nUMSizeY = m_nUMSizeY + rhs.m_nUMSizeY;
|
m_nUMSize = m_nUMSize + rhs.m_nUMSize;
|
|
return *this;
|
}
|