| | |
| | | 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; |
| | | } |
| | | |