htiui/HtiServicePlugins/HtiScreenshotServicePlugin/inc/HtiTextRcg.h
branchRCL_3
changeset 18 48060abbbeaf
parent 17 d40e813b23c0
child 19 b3cee849fa46
--- a/htiui/HtiServicePlugins/HtiScreenshotServicePlugin/inc/HtiTextRcg.h	Thu Jul 15 18:39:46 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Text recognition algorithm implementation.
-*
-*/
-
-
-#ifndef __HTI_TEXT_RCG_
-#define __HTI_TEXT_RCG_
-
-#include <fbs.h>
-#include <gulfont.h>
-#include <e32math.h>
-
-const TInt KDefaultAvgDiffMin = 50;
-const TInt KDefaultFgSSMin = 50;
-const TInt KDefaultFgAvgDiffMin = 5; //in "pure" (not AA) pixels
-const TInt KWorstCase = 0xFF;
-const TInt KSuccessThresold = 50;
-const TInt KNormCoefAcc = 2;
-
-const TInt KDefaultFGAAmount = 5;
-const TInt KDefaultBGAAmount = 10;
-
-const TInt KFgPatternColor = 0x00; //black
-const TInt KBgPatternColor = 0xff; //white
-
-TInt CompareTPoint(const TPoint& aP1,const TPoint& aP2);
-
-enum THtiTextRecgHints
-    {
-    EHintNone = 0,
-    EHintEdge = 1
-    };
-
-/**
-* The class implements text recognition algorithm on screenshots
-* based on system fonts
-*
-*/
-class CHtiTextRcg : public CBase
-{
-public:
-    CHtiTextRcg();
-    virtual ~CHtiTextRcg();
-
-    void SetHint(TInt aHint);
-
-    TBool RecognizeTextL(CFbsBitmap* aScreenshot,
-                        const TDesC& aText,
-                        const CFont* aFont,
-                        TRect& aResult);
-
-    /**
-    * aResult will contain the coordinates of the found text
-    *  Return 0 if match is perfect, 255 if text was not found
-    * return value from 0 to 255 means some error, the lower it is the better match
-    *
-    */
-    //brute force optim
-    TInt RecognizeAAL(CFbsBitmap* aScreenshot,const TDesC& aText, const CFont* aFont, TRect& aResult);
-    //brute force clean optim
-    TInt RecognizeBinL(CFbsBitmap* aScreenshot,const TDesC& aText, const CFont* aFont, TRect& aResult);
-
-    //static image processing routines
-    //convert image to 256-greyscale
-    static CFbsBitmap* ColorDownL(CFbsBitmap * aBitmap);
-    //generates bitmap of the text using the font given
-
-    static CFbsBitmap* GetTextBitmapL( const TDesC& aText,
-                            const CFont* fontUsed,
-                            const TInt aLength = KMaxTInt );
-
-    static CFbsBitmap* GetTextBitmapL( const TDesC& aText,
-                            const CFont* fontUsed,
-                            TRgb aForeground,
-                            TRgb aBackground,
-                            TDisplayMode aDisplayMode,
-                            const TInt aLength = KMaxTInt );
-
-    //calculates min max of a greyscale bitmap in question
-    static void MinMax(CFbsBitmap * aBitmap, TInt& aMin, TInt& aMax);
-
-    /**
-    * use FGA and BGA to speed-up comparation
-    * this function only returns 255 or 0
-    * Analyses only min and max colors
-    */
-    TInt ImageDiffBinSampleL(CFbsBitmap * aBitmap1, TPoint aOrigin1,
-                 CFbsBitmap * aBitmap2);
-
-    /**
-    * Iterations like in Diff5 but metrics from Diff6
-    * Used for full word checking if Diff6 is 0 for a letter
-    * this function only returns 255 or 0
-    */
-    TInt ImageDiffBinFullL(CFbsBitmap * aBitmap1, TPoint aOrigin1,
-                 CFbsBitmap * aBitmap2);
-
-    /**
-    * use FGA and BGA to speed-up comparation and AA pixels
-    */
-    TInt ImageDiffAASampleL(CFbsBitmap * aBitmap1, TPoint aOrigin1,
-                 CFbsBitmap * aBitmap2);
-
-    /**
-    * Iterations like in Diff5 but metrics from Diff6/DiffAASample
-    * Used for full word checking if Diff6 is 0 for a letter
-    */
-    TInt ImageDiffAAFullL(CFbsBitmap * aBitmap1, TPoint aOrigin1,
-                 CFbsBitmap * aBitmap2);
-
-    /*
-    * Analyze pattern and fills in FGA and BGA sets
-    * Return ETrue if pattern is valid (non empty)
-    */
-    TBool AnalyzePatternL(CFbsBitmap * aPattern);
-
-private:
-    //algorithm parameters
-    //minimal abs avarage difference beetwen foreground and background
-    TInt iAvgDiffMin;
-    //minimal SS for foreground, with plain color should be 0
-    TInt iFgSSMin;
-    /**
-    * minimal avg diff for foreground, used in Diff3
-    */
-    TInt iFgAvgDiffMin;
-
-    //TInt64 iSeed;
-
-    //following vars set by AnalyzePatternL
-    TInt iFGAAmount;
-    TInt iBGAAmount;
-    //foreground assesment point set
-    RArray<TPoint> iFGASet;
-    //background assesment point set
-    RArray<TPoint> iBGASet;
-
-    //font color in reference image
-    TInt iMaskFgColor;//
-    //background color in reference image
-    TInt iMaskBgColor;//
-
-    //used for AA algorithm
-    //set in Sample function and used in Full function
-    //for optimization
-    TInt iTestFgColor;
-    TInt iTestBgColor;
-
-    // normalization coeff to compare test image with mask directly
-    // |iMaskFgColor-iMaskBgColor|*NormCoefAcc)/|iTestFgColor-iTestBgColor|
-    // where NormCoefAcc multiplyer is used to increase accuracy (all ints)
-    // and is implemented as shif by KNormCoefAcc bits
-    // back shift is performed after color is multiplied by iTestNormCoef
-    TInt iTestNormCoef;
-
-    /**
-    * Current recognition method
-    * Changed by SetHint
-    */
-    TInt iCurrentStrategy;
-};
-
-#endif //__HTI_TEXT_RCG_
-
-// End of file