diff options
Diffstat (limited to 'src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/pointfloat/PointFloatShapeFeatureExtractor.cpp')
-rw-r--r-- | src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/pointfloat/PointFloatShapeFeatureExtractor.cpp | 394 |
1 files changed, 0 insertions, 394 deletions
diff --git a/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/pointfloat/PointFloatShapeFeatureExtractor.cpp b/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/pointfloat/PointFloatShapeFeatureExtractor.cpp deleted file mode 100644 index 49260852..00000000 --- a/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/pointfloat/PointFloatShapeFeatureExtractor.cpp +++ /dev/null @@ -1,394 +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: 2009-07-01 20:12:22 +0530 (Wed, 01 Jul 2009) $ - * $Revision: 784 $ - * $Author: mnab $ - * - ************************************************************************/ -/************************************************************************ - * FILE DESCR: Implementation for PointFloat Shape FeatureExtractor module - * - * CONTENTS: - * - * AUTHOR: Saravanan R. - * - * DATE: March 15, 2007 - * CHANGE HISTORY: - * Author Date Description of change - ************************************************************************/ - -#include "PointFloatShapeFeatureExtractor.h" -#include "PointFloatShapeFeature.h" -#include "LTKTraceGroup.h" -#include "LTKTrace.h" -#include "LTKChannel.h" -#include "LTKTraceFormat.h" -#include "LTKConfigFileReader.h" -#include "LTKMacros.h" -#include "LTKPreprocDefaults.h" -#include "LTKException.h" -#include "LTKErrors.h" -#include "LTKLoggerUtil.h" - - -/********************************************************************************** - * AUTHOR : Naveen Sundar G - * DATE : 1-Oct-2007 - * NAME : PointFloatShapeFeatureExtractor - * DESCRIPTION : parameterized constructor - * ARGUMENTS : - * RETURNS : - * NOTES : - * CHANGE HISTROY - * Author Date - *************************************************************************************/ -PointFloatShapeFeatureExtractor::PointFloatShapeFeatureExtractor( - const LTKControlInfo& controlInfo) -{ - string cfgFilePath = ""; - - // Config file - if ( ! ((controlInfo.lipiRoot).empty()) && - ! ((controlInfo.projectName).empty()) && - ! ((controlInfo.profileName).empty()) && - ! ((controlInfo.cfgFileName).empty())) - { - // construct the cfg path using project and profile name - cfgFilePath = (controlInfo.lipiRoot) + PROJECTS_PATH_STRING + - (controlInfo.projectName) + PROFILE_PATH_STRING + - (controlInfo.profileName) + SEPARATOR + - (controlInfo.cfgFileName) + CONFIGFILEEXT; - } - else if ( ! ((controlInfo.cfgFilePath).empty() )) - { - cfgFilePath = controlInfo.cfgFilePath; - } - else - { - throw LTKException(EINVALID_PROJECT_NAME); - } - - int returnVal = readConfig(cfgFilePath); - - if (returnVal != SUCCESS) - { - LOG(LTKLogger::LTK_LOGLEVEL_ERR) << - "Error: PointFloatShapeFeatureExtractor::PointFloatShapeFeatureExtractor()" - << endl; - - throw LTKException(returnVal); - } - - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Exiting " << - "PointFloatShapeFeatureExtractor::PointFloatShapeFeatureExtractor()" << endl; -} - -/********************************************************************************** - * AUTHOR : Naveen Sundar G - * DATE : 1-Oct-2007 - * NAME : readConfig - * DESCRIPTION : read the config values from cfg file and set member variables - * ARGUMENTS : - * RETURNS : - * NOTES : - * CHANGE HISTROY - * Author Date - *************************************************************************************/ - -int PointFloatShapeFeatureExtractor::readConfig(const string& cfgFilePath) -{ - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Entering " << - "PointFloatShapeFeatureExtractor::readConfig()" << endl; - - LTKConfigFileReader* configurableProperties = NULL; - string tempStringVar = ""; - - try - { - configurableProperties = new LTKConfigFileReader(cfgFilePath); - } - - catch(LTKException e) - { - delete configurableProperties; - - int eCode = e.getErrorCode(); - - LOG( LTKLogger::LTK_LOGLEVEL_ERR) << "Error: " << eCode << - " : " << getErrorMessage(eCode) << - " PointFloatShapeFeatureExtractor::readConfig" <<endl; - - LTKReturnError(eCode); - } - - delete configurableProperties; - - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Exiting " << - "PointFloatShapeFeatureExtractor::readConfig()" << endl; - return SUCCESS; - -} - -/************************************************************************** - * AUTHOR : Naveen Sundar G - * DATE : - * NAME : - * DESCRIPTION : - * ARGUMENTS : - * RETURNS : - * NOTES : - * CHANGE HISTROY - * Author Date - ****************************************************************************/ - -int PointFloatShapeFeatureExtractor::extractFeatures(const LTKTraceGroup& inTraceGroup, - vector<LTKShapeFeaturePtr>& outFeatureVec) -{ - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Entering " << - "PointFloatShapeFeatureExtractor::extractFeatures()" << endl; - - PointFloatShapeFeature *featurePtr = NULL; - float x,y,deltax; - int numPoints=0; // number of pts - int count=0; - int currentStrokeSize; - float sintheta, costheta,sqsum; - int i; - - int numberOfTraces = inTraceGroup.getNumTraces(); - - if (numberOfTraces == 0 ) - { - LOG( LTKLogger::LTK_LOGLEVEL_ERR) << "Error: " << - EEMPTY_TRACE_GROUP << " : " << getErrorMessage(EEMPTY_TRACE_GROUP)<< - " PointFloatShapeFeatureExtractor::extractFeatures" <<endl; - - LTKReturnError(EEMPTY_TRACE_GROUP); - } - - LTKTraceVector allTraces = inTraceGroup.getAllTraces(); - LTKTraceVector::iterator traceIter = allTraces.begin(); - LTKTraceVector::iterator traceEnd = allTraces.end(); - - - //***CONCATENTATING THE STROKES*** - for (; traceIter != traceEnd ; ++traceIter) - { - floatVector tempxVec, tempyVec; - - (*traceIter).getChannelValues("X", tempxVec); - - (*traceIter).getChannelValues("Y", tempyVec); - - // Number of points in the stroke - numPoints = numPoints + tempxVec.size(); - } - - //***THE CONCATENATED FULL STROKE*** - floatVector xVec(numPoints); - floatVector yVec(numPoints); - - - traceIter = allTraces.begin(); - traceEnd = allTraces.end(); - - boolVector penUp; - // Add the penUp here - for (; traceIter != traceEnd ; ++traceIter) - { - floatVector tempxVec, tempyVec; - - (*traceIter).getChannelValues("X", tempxVec); - - (*traceIter).getChannelValues("Y", tempyVec); - - currentStrokeSize = tempxVec.size(); - - if (currentStrokeSize == 0) - { - LOG( LTKLogger::LTK_LOGLEVEL_ERR) << "Error: " << - EEMPTY_TRACE << " : " << getErrorMessage(EEMPTY_TRACE) << - " PointFloatShapeFeatureExtractor::extractFeatures" <<endl; - - LTKReturnError(EEMPTY_TRACE); - } - - for( int point=0; point < currentStrokeSize ; point++ ) - { - xVec[count] = tempxVec[point]; - yVec[count] = tempyVec[point]; - count++; - - if(point == currentStrokeSize - 1 ) - { - penUp.push_back(true); - } - else - { - penUp.push_back(false); - } - } - - } - //***CONCATENTATING THE STROKES*** - - vector<float> theta(numPoints); - vector<float> delta_x(numPoints-1); - vector<float> delta_y(numPoints-1); - - for(i=0; i<numPoints-1; ++i) - { - delta_x[i]=xVec[i+1]-xVec[i]; - delta_y[i]=yVec[i+1]-yVec[i]; - - } - - //Add the controlInfo here - sqsum = sqrt( pow(xVec[0],2)+ pow(yVec[0],2))+ EPS; - - sintheta = (1+yVec[0]/sqsum)*PREPROC_DEF_NORMALIZEDSIZE/2; - - costheta = (1+xVec[0]/sqsum)*PREPROC_DEF_NORMALIZEDSIZE/2; - - featurePtr = new PointFloatShapeFeature(xVec[0], - yVec[0], - sintheta, - costheta, - penUp[0]); - - outFeatureVec.push_back(LTKShapeFeaturePtr(featurePtr)); - featurePtr = NULL; - - - for( i=1; i<numPoints; ++i) - { - - //Add the controlInfo here - - sqsum = sqrt(pow(delta_x[i-1],2) + pow(delta_y[i-1],2))+EPS; - sintheta = (1+delta_y[i-1]/sqsum)*PREPROC_DEF_NORMALIZEDSIZE/2; - costheta = (1+delta_x[i-1]/sqsum)*PREPROC_DEF_NORMALIZEDSIZE/2; - - featurePtr = new PointFloatShapeFeature(xVec[i], - yVec[i], - sintheta, - costheta, - penUp[i]); - //***POPULATING THE FEATURE VECTOR*** - outFeatureVec.push_back(LTKShapeFeaturePtr(featurePtr)); - featurePtr = NULL; - - } - - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Exiting " << - "PointFloatShapeFeatureExtractor::extractFeatures()" << endl; - - return SUCCESS; -} - -/************************************************************************** - * AUTHOR : Naveen Sundar G - * DATE : - * NAME : - * DESCRIPTION : - * ARGUMENTS : - * RETURNS : - * NOTES : - * CHANGE HISTROY - * Author Date - ****************************************************************************/ -LTKShapeFeaturePtr PointFloatShapeFeatureExtractor::getShapeFeatureInstance() -{ - LTKShapeFeaturePtr tempPtr(new PointFloatShapeFeature); - return tempPtr; -} - - -/****************************************************************************** - * AUTHOR : Tarun Madan - * DATE : Aug-07-2007 - * NAME : convertToTraceGroup - * DESCRIPTION : - * ARGUMENTS : - * RETURNS : - * NOTES : - * CHANGE HISTROY - * Author Date Description - ******************************************************************************/ -int PointFloatShapeFeatureExtractor::convertFeatVecToTraceGroup( - const vector<LTKShapeFeaturePtr>& shapeFeature, - LTKTraceGroup& outTraceGroup) -{ - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Entering " << - "PointFloatShapeFeatureExtractor::convertFeatVecToTraceGroup()" << endl; - - vector<LTKChannel> channels; // channels of a trace - - LTKChannel xChannel("X", DT_INT, true); // x-coordinate channel of the trace - LTKChannel yChannel("Y", DT_INT, true); // y-coordinate channel of the trace - - //initializing the channels of the trace - channels.push_back(xChannel); - channels.push_back(yChannel); - - // composing the trace format object - LTKTraceFormat traceFormat(channels); - - vector<float> point; // a point of a trace - - LTKTrace trace(traceFormat); - int featureVectorSize = shapeFeature.size(); - - for(int count=0; count < featureVectorSize; count++) - { - float Xpoint, Ypoint; - bool penUp; - - PointFloatShapeFeature* ptr = (PointFloatShapeFeature*)(shapeFeature[count].operator ->()); - Xpoint = ptr->getX(); - Ypoint = ptr->getY(); - penUp = ptr->isPenUp(); - - - - point.push_back(Xpoint); - point.push_back(Ypoint); - - trace.addPoint(point); - point.clear(); - - - if(penUp == true) // end of a trace, clearing the trace now - { - outTraceGroup.addTrace(trace); - trace.emptyTrace(); - LTKTrace tempTrace(traceFormat); - trace = tempTrace; - } - } - - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Exiting " << - "PointFloatShapeFeatureExtractor::convertFeatVecToTraceGroup()" << endl; - - return SUCCESS; -} |