| | |
| | | #include "StdAfx.h" |
| | | #include "StdAfx.h" |
| | | #include "DefectStorage.h" |
| | | #include "SISBuffer.h" |
| | | #include "BlobStorage.h" |
| | |
| | | delete[] m_pDefect; |
| | | } |
| | | |
| | | // 16俺狼 咯盒阑 敌促..恐? 郴干.. |
| | | // 16俺狼 咯盒阑 敌促..恐? 郴干.. |
| | | int DefectSapce= maxDefect+ 16; |
| | | m_pDefect= new CDefect[DefectSapce]; |
| | | |
| | |
| | | return m_nDefect; |
| | | } |
| | | |
| | | int CDefectControl::ExtractDefect_NotchBroken(DimensionDir emDim, int iCam, int iScan, CDefect_Info defect) |
| | | { |
| | | if (m_pGrabber == NULL) { |
| | | return m_nDefect; |
| | | } |
| | | |
| | | CSingleLock MyLock(&m_csDefect); |
| | | MyLock.Lock(); |
| | | |
| | | if (m_nDefect >= m_maxDefect) { |
| | | MyLock.Unlock(); |
| | | return m_nDefect; |
| | | } |
| | | |
| | | CDefect* pDefect = GetDefect(m_nDefect); |
| | | if (pDefect == NULL) { |
| | | MyLock.Unlock(); |
| | | return m_nDefect; |
| | | } |
| | | |
| | | pDefect->Reset(); |
| | | pDefect->m_bJudge_NG = TRUE; |
| | | pDefect->m_DefectInfo = defect; |
| | | |
| | | int nXStart = pDefect->m_DefectInfo.m_ptDefectPos_pxl.x - (DEFECTIMAGE_WIDTH / 2); |
| | | int nYStart = pDefect->m_DefectInfo.m_ptDefectPos_pxl.y - (DEFECTIMAGE_HEIGHT / 2); |
| | | int nXSize = DEFECTIMAGE_WIDTH; |
| | | int nYSize = DEFECTIMAGE_HEIGHT; |
| | | //int nXStart = pDefect->m_DefectInfo.m_rtDefectPos_pxl.left; |
| | | //int nYStart = pDefect->m_DefectInfo.m_rtDefectPos_pxl.top; |
| | | //int nXSize = pDefect->m_DefectInfo.m_rtDefectPos_pxl.Width(); |
| | | //int nYSize = pDefect->m_DefectInfo.m_rtDefectPos_pxl.Height(); |
| | | if (m_pGrabber->GetSmallImage(iScan, pDefect->m_Image, nXStart, nYStart, nXSize, nYSize, FALSE) == FALSE) { |
| | | MyLock.Unlock(); |
| | | return m_nDefect; |
| | | } |
| | | |
| | | m_nDefect++; |
| | | |
| | | MyLock.Unlock(); |
| | | return m_nDefect; |
| | | } |
| | | |
| | | int CDefectControl::ExtractDefect_UserDefect(DimensionDir emDim, int iCam, int iScan, int nUserDefectAreaIdx, std::vector<CDefect_Info>* vecPreDefectList) |
| | | { |
| | | if(m_pGrabber == NULL) |
| | |
| | | pDefect->m_bJudge_NG = TRUE; |
| | | pDefect->m_dSizeX_um = dMeasureResult_um; |
| | | pDefect->m_dSizeY_um = dMeasureDiff_um; |
| | | pDefect->m_dChamfer_um = dMeasureResult_um; |
| | | pDefect->m_dChamferOff_um = dMeasureDiff_um; |
| | | pDefect->m_DefectInfo = defect; |
| | | |
| | | if(m_pGrabber->GetSmallImage(iScan,pDefect->m_Image |