diff options
Diffstat (limited to 'src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/common/LTKShapeRecoUtil.cpp')
-rw-r--r-- | src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/common/LTKShapeRecoUtil.cpp | 486 |
1 files changed, 0 insertions, 486 deletions
diff --git a/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/common/LTKShapeRecoUtil.cpp b/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/common/LTKShapeRecoUtil.cpp deleted file mode 100644 index 2d944d0c..00000000 --- a/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/common/LTKShapeRecoUtil.cpp +++ /dev/null @@ -1,486 +0,0 @@ -/***************************************************************************************** -* Copyright (c) 2006 Hewlett-Packard Development Company, L.P. -* Permission is hereby granted, free of charge, to any person obtaining a copy of -* this software and associated documentation files (the "Software"), to deal in -* the Software without restriction, including without limitation the rights to use, -* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the -* Software, and to permit persons to whom the Software is furnished to do so, -* subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF -* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE -* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*****************************************************************************************/ - -/************************************************************************ - * SVN MACROS - * - * $LastChangedDate: 2008-07-18 15:00:39 +0530 (Fri, 18 Jul 2008) $ - * $Revision: 561 $ - * $Author: sharmnid $ - * - ************************************************************************/ -/************************************************************************ -* FILE DESCR: Implementation for LTKShapeRecoUtil -* -* CONTENTS: -* getAbsolutePath -* isProjectDynamic -* initializePreprocessor -* deletePreprocessor -* unloadPreprocessor -* readInkFromFile -* checkEmptyTraces -* shapeFeatureVectorToFloatVector -* shapeFeatureVectorToIntVector -* -* AUTHOR: Saravanan R. -* -* DATE: January 23, 2004 -* CHANGE HISTORY: -* Author Date Description of change -************************************************************************/ - -#ifdef _WIN32 -#include "windows.h" -#endif - -#include "LTKInc.h" -#include "LTKLoggerUtil.h" -#include "LTKTrace.h" -#include "LTKMacros.h" -#include "LTKErrors.h" -#include "LTKException.h" -#include "LTKErrorsList.h" -#include "LTKInkFileReader.h" -#include "LTKTraceGroup.h" -#include "LTKStringUtil.h" -#include "LTKConfigFileReader.h" -#include "LTKShapeRecoUtil.h" -#include "LTKShapeFeatureExtractor.h" -#include "LTKShapeFeature.h" -#include "LTKPreprocessorInterface.h" - - -//FN_PTR_DELETE_SHAPE_FTR_PTR LTKShapeRecoUtil::m_deleteShapeFeatureFunc = NULL; - -/********************************************************************************** -* AUTHOR : Saravanan. R -* DATE : 11-01-2007 -* NAME : LTKShapeRecoUtil -* DESCRIPTION : Constructor -* ARGUMENTS : None -* RETURNS : None -* NOTES : -* CHANGE HISTROY -* Author Date Description -*************************************************************************************/ -LTKShapeRecoUtil::LTKShapeRecoUtil() -{ - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Entered LTKShapeRecoUtil::LTKShapeRecoUtil()" <<endl; - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Exiting LTKShapeRecoUtil::LTKShapeRecoUtil()" <<endl; -} - -/********************************************************************************** - * AUTHOR : Saravanan. R - * DATE : 31-01-2007 - * NAME : LTKShapeRecoUtil - * DESCRIPTION : Destructor - * ARGUMENTS : None - * RETURNS : None - * NOTES : - * CHANGE HISTROY - * Author Date Description - *************************************************************************************/ -LTKShapeRecoUtil::~LTKShapeRecoUtil() -{ -} - -/********************************************************************************** - * AUTHOR : Saravanan. R - * DATE : 11-01-2007 - * NAME : getAbsolutePath - * DESCRIPTION : This method is used to convert the relative path to the absolute path - * ARGUMENTS : pathName : string : Holds the path of the training file - * lipiRootPath : string : Holds the lipiroot path - * - * RETURNS : SUCCESS only - * NOTES : - * CHANGE HISTROY - * Author Date Descriptionh - *************************************************************************************/ -int LTKShapeRecoUtil::getAbsolutePath (const string& inputPath, - const string& lipiRootPath, - string& outPath) -{ - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Entered LTKShapeRecoUtil::getAbsolutePath()" <<endl; - - outPath = ""; - vector<string> tokens; - - int returnStatus = SUCCESS; - - //Split the path name into number of tokens based on the delimter - returnStatus = LTKStringUtil::tokenizeString(inputPath, "\\/", tokens); - - if(returnStatus != SUCCESS) - { - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<<"Error: " << - getErrorMessage(returnStatus) << - " LTKShapeRecoUtil::getAbsolutePath()" <<endl; - - LTKReturnError(returnStatus); - } - - //The first token must be the $LIPI_ROOT. Otherwise return from the function - if (tokens[0] != LIPIROOT) - { - outPath = inputPath; - return SUCCESS; - } - - //Store the Environment variable into the tokens - tokens[0] = lipiRootPath; - - //Reinitialize the outPath - for(int i=0 ; i < tokens.size() ; i++) - { - outPath += tokens[i] + SEPARATOR; - } - - // Erase the last character '\' - outPath.erase(outPath.size()-1,1); - - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Exiting LTKShapeRecoUtil::getAbsolutePath()" <<endl; - - return SUCCESS; -} - - -/*********************************************************************************** - * AUTHOR : Saravanan. R - * DATE : 19-01-2007 - * NAME : isProjectDynamic - * DESCRIPTION : This method reads the project.cfg to find whether the project - * is dynamic or not - * ARGUMENTS : configFilePath : string : Holds the path of the project.cfg - * numShapes : unsigned short : Holds the NumShapes value from config file - * returnStauts : int : Holds SUCCESS or ErrorValues - * strNumShapes : string : Holds the NumShapes value from config file - * RETURNS : true : if the project was dynamic - * false : if the project was dynamic - * NOTES : - * CHANGE HISTROY - * Author Date Description - *************************************************************************************/ -int LTKShapeRecoUtil::isProjectDynamic(const string& configFilePath, - unsigned short& numShapes, - string& strNumShapes, - bool& outIsDynamic ) -{ - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Entering LTKShapeRecoUtil::isProjectDynamic()" <<endl; - - //Specifies the project is dynamic or not - outIsDynamic = false; - - string numShapesCfgAttr = ""; - - //As numshapes was unsigned short we use this tempNumShapes as integer, - //it is used for checking whether it is less than 0 - int tempNumShapes = 0; - LTKConfigFileReader* projectCfgAttrs = NULL; - string valueFromCFG = "0"; - - int errorCode = SUCCESS; - - try - { - //Read the config entries - projectCfgAttrs = new LTKConfigFileReader(configFilePath); - errorCode = projectCfgAttrs->getConfigValue(PROJECT_CFG_ATTR_NUMSHAPES_STR, numShapesCfgAttr); - - //Checking whether the numshapes was dynamic - if(errorCode != SUCCESS) - { - LOG( LTKLogger::LTK_LOGLEVEL_ERR)<<"Error: " << - "NumShapes should be set to dynamic or the number of training classes" << - " LTKShapeRecoUtil::isProjectDynamic()" <<endl; - - LTKReturnError(errorCode); - - } - else if( LTKSTRCMP(numShapesCfgAttr.c_str(), DYNAMIC) == 0 ) - { - //Numshapes was dynamic - outIsDynamic = true; - tempNumShapes = 0; - } - else - { - bool isPositiveInteger=true; - - valueFromCFG = numShapesCfgAttr; - - for(int charIndex=0 ; charIndex < valueFromCFG.size() ; ++charIndex) - { - if(!(valueFromCFG[charIndex]>='0' && valueFromCFG[charIndex]<='9')) - { - isPositiveInteger=false; - break; - } - } - - - - if(!isPositiveInteger) - { - LOG( LTKLogger::LTK_LOGLEVEL_ERR)<<"Error" << - "NumShapes should be set to dynamic or the number of training classes" << - " LTKShapeRecoUtil::isProjectDynamic()" <<endl; - - LTKReturnError(EINVALID_NUM_OF_SHAPES); - } - else - { - tempNumShapes = atoi(valueFromCFG.c_str()); - if(tempNumShapes==0) - { - LOG( LTKLogger::LTK_LOGLEVEL_ERR)<<"Error" << - "NumShapes should be set to dynamic or the number of training classes" << - " LTKShapeRecoUtil::isProjectDynamic()" <<endl; - - LTKReturnError(EINVALID_NUM_OF_SHAPES); - } - else - { - //Numshapes was not dynamic - outIsDynamic = false; - } - - } - - } - - numShapes = tempNumShapes; - strNumShapes = valueFromCFG; - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "NumShapes in the project is " << valueFromCFG <<endl; - - - } - catch(LTKException e) - { - delete projectCfgAttrs; - throw e; - } - - delete projectCfgAttrs; - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Exiting LTKShapeRecoUtil::isProjectDynamic()" <<endl; - - return SUCCESS; -} - - - -/********************************************************************************** - * AUTHOR : Saravanan. R - * DATE : 30-01-2007 - * NAME : readInkFromFile - * DESCRIPTION : This method reads the Ink file and check from empty traces - * ARGUMENTS : string : Holds the Path of the unipen ink file -string : Holds the Path of the lipi root - * RETURNS : - * NOTES : - * CHANGE HISTROY - * Author Date Description - *************************************************************************************/ -int LTKShapeRecoUtil::readInkFromFile(const string& path, const string& lipiRootPath, - LTKTraceGroup& inTraceGroup, - LTKCaptureDevice& captureDevice, - LTKScreenContext& screenContext) -{ - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Entering LTKShapeRecoUtil::readInkFromFile()" <<endl; - - //inTraceGroup.emptyAllTraces(); - - string tempPath = path; - - //Check and convert Relative path to Absolute path - string outPath = ""; - getAbsolutePath(tempPath, lipiRootPath, outPath); - - //Print the path name - cout << outPath << endl; - - //Read Ink file to inTraceGroup - // errorVal = LTKInkFileReader::readUnipenInkFile(tempPath,inTraceGroup,captureDevice,screenContext); - int errorCode = LTKInkFileReader::readUnipenInkFile(outPath,inTraceGroup,captureDevice,screenContext); - - if (errorCode != SUCCESS) - { - LOG( LTKLogger::LTK_LOGLEVEL_ERR)<<"Error: " << - getErrorMessage(errorCode) << - " LTKShapeRecoUtil::readInkFromFile()" <<endl; - - LTKReturnError(errorCode); - } - - //Check for empty traces in inTraceGroup - - if (inTraceGroup.containsAnyEmptyTrace()) - { - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<<"Error: " << - "TraceGroup has empty traces" << - " LTKShapeRecoUtil::readInkFromFile()" <<endl; - - LTKReturnError(EEMPTY_TRACE); - } - - - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Exiting LTKShapeRecoUtil::readInkFromFile()" <<endl; - - return SUCCESS; -} - -/********************************************************************************** - * AUTHOR : Saravanan. R - * DATE : 30-01-2007 - * NAME : checkEmptyTraces - * DESCRIPTION : This method checks for empty traces - * ARGUMENTS : inTraceGroup : LTKTraceGroup : - * RETURNS : 1 if it contains empty trace group, 0 otherwise - * NOTES : - * CHANGE HISTROY - * Author Date Description - *************************************************************************************/ -/* -int LTKShapeRecoUtil::checkEmptyTraces(const LTKTraceGroup& inTraceGroup) -{ - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Entering LTKShapeRecoUtil::checkEmptyTraces()" <<endl; - - int returnVal = SUCCESS; - - vector<LTKTrace> tracesVec = inTraceGroup.getAllTraces(); //traces in trace group - - int numTraces = tracesVec.size(); - - int numTracePoints = 0; - - LTKTrace trace; // a trace of the trace group - - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< "numTraces = " << numTraces <<endl; - - - for(int traceIndex=0; traceIndex < numTraces; ++traceIndex) - { - trace = tracesVec.at(traceIndex); - - numTracePoints=trace.getNumberOfPoints(); - - if(numTracePoints==0) - { - LOG( LTKLogger::LTK_LOGLEVEL_ERR)<<"Error: "<< - getError(EEMPTY_TRACE) << - "Exiting LTKShapeRecoUtil::checkEmptyTraces()" <<endl; - LTKReturnError(EEMPTY_TRACE); - } - - } - - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Exiting LTKShapeRecoUtil::checkEmptyTraces()" <<endl; - return SUCCESS; -} -*/ -int LTKShapeRecoUtil::convertHeaderToStringStringMap(const string& header, stringStringMap& headerSequence) -{ - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Entering LTKShapeRecoUtil::convertHeaderToStringStringMap()" <<endl; - - vector<string> tokens; - vector<string> strList; - - int returnStatus = SUCCESS; - - LTKStringUtil::tokenizeString(header, "<>", tokens); - - for(int i=0 ; i < tokens.size(); ++i) - { - returnStatus = LTKStringUtil::tokenizeString(tokens[i], "=", strList); - if(returnStatus != SUCCESS) - { - LOG( LTKLogger::LTK_LOGLEVEL_ERR)<<"Error: " << - getErrorMessage(returnStatus) << - " LTKShapeRecoUtil::convertHeaderToStringStringMap()" <<endl; - LTKReturnError(returnStatus); - } - if(strList.size() == 2) - { - headerSequence[strList[0]] = strList[1]; - } - } - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG)<< - "Exiting LTKShapeRecoUtil::convertHeaderToStringStringMap()" <<endl; - - return SUCCESS; -} - - -/********************************************************************************** -* AUTHOR : Saravanan. R -* DATE : 14-03-2007 -* NAME : shapeFeatureVectorToFloatVector -* DESCRIPTION : This method converts the ShapeFeatureVector to float vector -* ARGUMENTS : -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description -*************************************************************************************/ -int LTKShapeRecoUtil::shapeFeatureVectorToFloatVector(const vector<LTKShapeFeaturePtr>& shapeFeature, - floatVector& outFloatVector) -{ - int returnVal = SUCCESS; - - //Iterators for the LTKShapeFeature - vector<LTKShapeFeaturePtr>::const_iterator shapeFeatureIter = shapeFeature.begin(); - vector<LTKShapeFeaturePtr>::const_iterator shapeFeatureIterEnd = shapeFeature.end(); - - - vector<float> shapeFeatureFloatvector; - - for(; shapeFeatureIter != shapeFeatureIterEnd; ++shapeFeatureIter) - { - - //Convert the shapefeature to float vector - returnVal = (*shapeFeatureIter)->toFloatVector(shapeFeatureFloatvector); - - if ( returnVal != SUCCESS ) - { - break; - } - - outFloatVector.insert(outFloatVector.end(), - shapeFeatureFloatvector.begin(), - shapeFeatureFloatvector.end()); - - shapeFeatureFloatvector.clear(); - - } - - return returnVal; -}
\ No newline at end of file |