SDC C-Project CF Review 프로그램
LYW
2021-09-02 adff2686acdccaad61ed7d3eed37825354e87b6e
ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
@@ -3805,49 +3805,85 @@
   BYTE *pImageBufferByte = (BYTE*)(pImageBuffer);
   if (pImageBuffer==NULL) return 0.;
   //#3524_210902_LYW_MOD START
   int nWidth = nImageWidth;
   //int nWidthStep = nImageWidth;
   int nHeight = nImageHeight;
   int nCalWidth = nWidth/2;
   int nCalHeight = nHeight/2;
   //    int nCalWidth = nWidth/2;
   //    int nCalHeight = nHeight/2;
   //
   //    int nStartX = nWidth/2 - nCalWidth/2;
   //    int nStartY = nHeight/2 - nCalHeight/2;
   int nStartX = nWidth/2 - nCalWidth/2;
   int nStartY = nHeight/2 - nCalHeight/2;
   int nCalWidth = nWidth;
   int nCalHeight = nHeight;
   //
   double Focusvalue = 0;
   double SumValue = 0;
   double TempValue = 0;
   double m_nResultFocusValue = 0;
   int nStartX = 0;
   int nStartY = 0;
   for (int y = 0; y < nHeight - 1; y++)
   int nStep = 3;
   double dXValue = 0., dYValue = 0., dCurr = 0., dSum = 0., dFocus = 0.;
   for (int nH = nStartY; nH < nStartY + nCalHeight - nStep; nH++)
   {
      for (int x = 0; x < nWidth - 1; x++)
      for (int nW = nStartX; nW < nStartX + nCalWidth - nStep; nW++)
      {
         TempValue = (double)(pImageBufferByte[y*nWidth + x] - pImageBufferByte[y*nWidth + x + 1]);
         SumValue = TempValue * TempValue;
         TempValue = (double)(pImageBufferByte[y*nWidth + x] - pImageBufferByte[(y + 1)*nWidth + x]);
         SumValue += TempValue * TempValue;
         Focusvalue += sqrt(SumValue);
         //Focusvalue += SumValue;
      }
   }
   m_nResultFocusValue = int(Focusvalue / (double)(nWidth*nHeight));
   double dXValue=0., dYValue=0., dCurr=0., dSum=0., dFocus=0.;
   for(int nH=nStartY ; nH<nStartY+nCalHeight-1 ; nH++)
   {
      for(int nW=nStartX ; nW<nStartX+nCalWidth-1 ; nW++)
      {
         dXValue = float((pImageBufferByte[nH*nW + nW+1] - pImageBufferByte[nH*nW + nW])*(pImageBufferByte[nH*nW + nW+1] - pImageBufferByte[nH*nW + nW]));
         dYValue = float((pImageBufferByte[(nH+1)*nW + nW] - pImageBufferByte[nH*nW + nW])*(pImageBufferByte[(nH+1)*nW + nW] - pImageBufferByte[nH*nW + nW]));
         dXValue = float((pImageBufferByte[nH*nWidth + nW + nStep] - pImageBufferByte[nH*nWidth + nW])*(pImageBufferByte[nH*nWidth + nW + nStep] - pImageBufferByte[nH*nWidth + nW]));
         dYValue = float((pImageBufferByte[(nH + nStep)*nWidth + nW] - pImageBufferByte[nH*nWidth + nW])*(pImageBufferByte[(nH + nStep)*nWidth + nW] - pImageBufferByte[nH*nWidth + nW]));
         dCurr = sqrt(dXValue + dYValue);
         break;
         dSum += dCurr;
      }
   }
   dFocus = dSum/double(nCalWidth*nCalHeight);
   dFocus = dSum / double(nCalWidth*nCalHeight);
   return dFocus;
   //#3524_210902_LYW_MOD END
   //Origin
//    int nWidth = nImageWidth;
//    int nHeight = nImageHeight;
//    int nCalWidth = nWidth/2;
//    int nCalHeight = nHeight/2;
//
//    int nStartX = nWidth/2 - nCalWidth/2;
//    int nStartY = nHeight/2 - nCalHeight/2;
//
//    //
//    double Focusvalue = 0;
//    double SumValue = 0;
//    double TempValue = 0;
//    double m_nResultFocusValue = 0;
//
//    for (int y = 0; y < nHeight - 1; y++)
//    {
//       for (int x = 0; x < nWidth - 1; x++)
//       {
//          TempValue = (double)(pImageBufferByte[y*nWidth + x] - pImageBufferByte[y*nWidth + x + 1]);
//          SumValue = TempValue * TempValue;
//          TempValue = (double)(pImageBufferByte[y*nWidth + x] - pImageBufferByte[(y + 1)*nWidth + x]);
//          SumValue += TempValue * TempValue;
//
//          Focusvalue += sqrt(SumValue);
//          //Focusvalue += SumValue;
//       }
//    }
//
//    m_nResultFocusValue = int(Focusvalue / (double)(nWidth*nHeight));
//
//    double dXValue=0., dYValue=0., dCurr=0., dSum=0., dFocus=0.;
//    for(int nH=nStartY ; nH<nStartY+nCalHeight-1 ; nH++)
//    {
//       for(int nW=nStartX ; nW<nStartX+nCalWidth-1 ; nW++)
//       {
//          dXValue = float((pImageBufferByte[nH*nW + nW+1] - pImageBufferByte[nH*nW + nW])*(pImageBufferByte[nH*nW + nW+1] - pImageBufferByte[nH*nW + nW]));
//          dYValue = float((pImageBufferByte[(nH+1)*nW + nW] - pImageBufferByte[nH*nW + nW])*(pImageBufferByte[(nH+1)*nW + nW] - pImageBufferByte[nH*nW + nW]));
//          dCurr = sqrt(dXValue + dYValue);
//          dSum += dCurr;
//       }
//    }
//    dFocus = dSum/double(nCalWidth*nCalHeight);
//
//    return dFocus;
}