SDC C-Project CF Review 프로그램
LYW
2021-10-15 1f40824333a67ee28309755cdff01a2a257cd67f
Ongoing90 #3671 CF AOI Review 전설비 Align Matching 방법 개선

- 메인 보조 매칭후 찾은 위치로 성공 처리시 두개의 위치의 평균값을 최종 결과로 처리
1개 파일 변경됨
20 ■■■■ 파일 변경됨
ReviewSystem/ReviewSystem/CameraControlAlign.cpp 20 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/CameraControlAlign.cpp
@@ -657,10 +657,11 @@
    
    //SAlignFindResult findResult = pAlignFinder->FindAlign(pCameraImage->GetImageData(View_Matching), findParam, pCameraImage->GetImageData(View_Template));
    //Main Align Matching
    SAlignFindResult findResult = pAlignFinder->FindAlign(&camImage, findParam, pCameraImage->GetImageData(View_Template));
    g_pLog->DisplayMessage(_T("Main TempleteMatching Result : %d Cam ResultCode = %d, PixelX = %d, PixelY = %d, MatchingRate = %.3lf"), nCameraIdx, findResult.nResultCode, int(findResult.dPosX + 0.5), int(findResult.dPosY + 0.5), findResult.dMatchValue);
    // result process
    //Main Align Matching result process
    if (findResult.nResultCode==AlignMatch_Success)
    {
        /*< LYW 20211015 - #3671 ADD Start >*/
@@ -676,8 +677,10 @@
    else
    {
        //Assistant Align Matching
        SAlignFindResult findAssistantResult = pAlignFinder->FindAlign(&camImage, findParam, pCameraImage->GetImageData(View_AssistantTemplate));
        g_pLog->DisplayMessage(_T("Assistant TempleteMatching Result : %d Cam ResultCode = %d, PixelX = %d, PixelY = %d, MatchingRate = %.3lf"), nCameraIdx, findAssistantResult.nResultCode, int(findAssistantResult.dPosX + 0.5), int(findAssistantResult.dPosY + 0.5), findAssistantResult.dMatchValue);
        //Assistant Align Matching result process
        if (findAssistantResult.nResultCode == AlignMatch_Success)
        {
            /*< LYW 20211015 - #3671 ADD Start >*/
@@ -692,15 +695,22 @@
        else 
        {
            //Main, Assistant Find Pos Compare
            int dffmain2assistanstX = int(findResult.dPosX) - int(findAssistantResult.dPosX);
            int dffmain2assistanstY = int(findResult.dPosY) - int(findAssistantResult.dPosY);
            g_pLog->DisplayMessage(_T("Main, Assistant TempleteMatching All Low Score! differenceX = %d, differenceY = %d"), dffmain2assistanstX, dffmain2assistanstY);
            if (abs(dffmain2assistanstX) <= findParam.dMatchingPixelStandard && abs(dffmain2assistanstY) <= findParam.dMatchingPixelStandard && findResult.dMatchValue != 0.0)
            if (abs(dffmain2assistanstX) <= findParam.dMatchingPixelStandard && abs(dffmain2assistanstY) <= findParam.dMatchingPixelStandard && findResult.dMatchValue != 0.0 && findAssistantResult.dMatchValue != 0.0)
            {
                //Main, Assistant Find Pos Compare Result Success Process
                m_AlignResult.nFindAlign[nCameraIdx] = 1;
                m_AlignResult.dFindPixelX[nCameraIdx] = int(findResult.dPosX + 0.5);
                m_AlignResult.dFindPixelY[nCameraIdx] = int(findResult.dPosY + 0.5);
                /*< LYW 20211015 - #3671 MOD Start >*/
                m_AlignResult.dFindPixelX[nCameraIdx] = int((findResult.dPosX + findAssistantResult.dPosX) / 2 + 0.5);
                m_AlignResult.dFindPixelY[nCameraIdx] = int((findResult.dPosY + findAssistantResult.dPosY) / 2 + 0.5);
                /*< LYW 20211015 - #3671 MOD End >*/
                /*< Origin Code >*/
                //m_AlignResult.dFindPixelX[nCameraIdx] = int(findResult.dPosX + 0.5);
                //m_AlignResult.dFindPixelY[nCameraIdx] = int(findResult.dPosY + 0.5);
                m_AlignResult.dFindScore[nCameraIdx] = findResult.dMatchValue;
                m_pACC2P->IACC2P_SetAccumaulate(m_pACC2P->IACC2P_GetAccumaulate() + 1);
                g_pLog->DisplayMessage(_T("Main, Assistant Templete Find Same Point! Align Success! Accumaulate = %d"), m_pACC2P->IACC2P_GetAccumaulate());
@@ -708,6 +718,7 @@
            else
            {
                //Main, Assistant Find Pos Compare Result Fail Process
                g_pLog->DisplayMessage(_T("Main Assistant Templete Don`t Find Same Point! Align Fail!"));
                m_AlignResult.nFindAlign[nCameraIdx] = 0;
                m_AlignResult.dFindScore[nCameraIdx] = findResult.dMatchValue;
@@ -715,6 +726,7 @@
            if (m_pACC2P->IACC2P_GetAccumaulate() >= findParam.dMatchingAlarmCondition)
            {
                //Main, Assistant Find Pos Alarm Process
                m_AlignResult.nFindAlign[nCameraIdx] = 0;
                m_AlignResult.dFindScore[nCameraIdx] = findResult.dMatchValue;
                m_pACC2P->IACC2P_SetAccumaulate(0);