diff options
Diffstat (limited to 'src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7')
8 files changed, 0 insertions, 1863 deletions
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.cpp deleted file mode 100644 index 16eaaca4..00000000 --- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.cpp +++ /dev/null @@ -1,673 +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-02-20 10:03:51 +0530 (Wed, 20 Feb 2008) $ - * $Revision: 423 $ - * $Author: sharmnid $ - * - ************************************************************************/ -/************************************************************************ - * FILE DESCR : Implementation of L7ShapeFeature class - * AUTHOR : Naveen Sundar G. - * DATE : August 30, 2005 - * CHANGE HISTORY : - * Author Date Description of change - ************************************************************************/ - -#include "L7ShapeFeature.h" -#include "LTKStringUtil.h" -#include <sstream> - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : L7ShapeFeature -* DESCRIPTION : Constructor for the L7ShapeFeature class. -* ARGUMENTS : none -* RETURNS : -* NOTES : Initializes the string delimiter used in writing feature values to a file. -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -L7ShapeFeature::L7ShapeFeature(): -m_data_delimiter(",") -{ -} - -/*************************************************************************** -* AUTHOR : Nidhi Sharma -* DATE : 12-Dec-2007 -* NAME : L7ShapeFeature -* DESCRIPTION : Parameterized Constructor for the L7ShapeFeature class. -* ARGUMENTS : -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*****************************************************************************/ -L7ShapeFeature::L7ShapeFeature(float inX, float inY, float inXFirstDerv, - float inYFirstDerv, float inXSecondDerv, - float inYSecondDerv, float inCurvature, - bool inPenUp): -m_x(inX), -m_y(inY), -m_xFirstDerv(inXFirstDerv), -m_yFirstDerv(inYFirstDerv), -m_xSecondDerv(inXSecondDerv), -m_ySecondDerv(inYSecondDerv), -m_curvature(inCurvature), -m_penUp(inPenUp), -m_data_delimiter(",") -{ -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : ~L7ShapeFeature -* DESCRIPTION : Destructor for the L7ShapeFeature class -* ARGUMENTS : none -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -L7ShapeFeature::~L7ShapeFeature() -{ - -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : getX -* DESCRIPTION : Get method for the x co-ordinate value -* ARGUMENTS : none -* RETURNS : X co-ordinate of the shape feature -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -float L7ShapeFeature::getX() const -{ - return m_x; -} - - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : getY -* DESCRIPTION : Get method for the y co-ordinate value -* ARGUMENTS : none -* RETURNS : Y co-ordinate of the shape feature -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -float L7ShapeFeature::getY() const -{ - return m_y; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : getXFirstDerv -* DESCRIPTION : Get method for the first derivative value along the X axis -* ARGUMENTS : none -* RETURNS : First derivative value along the X axis. -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -float L7ShapeFeature::getXFirstDerv() const -{ - return m_xFirstDerv; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : getYFirstDerv -* DESCRIPTION : Get method for the first derivative value along the Y axis -* ARGUMENTS : none -* RETURNS : First derivative value along the Y axis. -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -float L7ShapeFeature::getYFirstDerv() const -{ - return m_yFirstDerv; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : getXSecondDerv -* DESCRIPTION : Get method for the second derivative value along the X axis. -* ARGUMENTS : none -* RETURNS : Second derivative value along the X axis. -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -float L7ShapeFeature::getXSecondDerv() const -{ - return m_xSecondDerv; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : getYSecondDerv -* DESCRIPTION : Get method for the second derivative value along the Y axis. -* ARGUMENTS : none -* RETURNS : Second derivative value along the Y axis. -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -float L7ShapeFeature::getYSecondDerv() const -{ - return m_ySecondDerv; -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : getCurvature -* DESCRIPTION : Get method for the curvature -* ARGUMENTS : none -* RETURNS : The curvature value -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -float L7ShapeFeature::getCurvature() const -{ - return m_curvature; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : isPenUp -* DESCRIPTION : Get method for the penUp -* ARGUMENTS : none -* RETURNS : The PenUp value -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -* Balaji MNA 01-July-2009 Rename getPenUp to isPenUp -*************************************************************************************/ -bool L7ShapeFeature::isPenUp() const -{ - return m_penUp; - -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : setX -* DESCRIPTION : Set method for the X co-ordinate value -* ARGUMENTS : X co-ordinate value to be set -* RETURNS : none -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeature::setX(float x) -{ - m_x = x; -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : setY -* DESCRIPTION : Set method for the Y co-ordinate value -* ARGUMENTS : Y co-ordinate value to be set -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeature::setY(float y) -{ - m_y = y; -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : setXFirstDerv -* DESCRIPTION : Set method for the first derivative along the X axis -* ARGUMENTS : The first derivative value along the X axis -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeature::setXFirstDerv(float xFirstDerv) -{ - m_xFirstDerv = xFirstDerv; -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : setYFirstDerv -* DESCRIPTION : Set method for the first derivative along the Y axis -* ARGUMENTS : The first derivative value along the Y axis to be set -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeature::setYFirstDerv(float yFirstDerv) -{ - m_yFirstDerv = yFirstDerv; -}/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : setXSecondDerv -* DESCRIPTION : Set method for the second derivative along the X axis -* ARGUMENTS : The second derivative value along the X axis to be set -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeature::setXSecondDerv(float xSecondDerv) -{ - m_xSecondDerv = xSecondDerv; -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : setYSecondDerv -* DESCRIPTION : Set method for the second derivative value along the y axis -* ARGUMENTS : The second derivative value along the Y axis to be set -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeature::setYSecondDerv(float ySecondDerv) -{ - m_ySecondDerv = ySecondDerv; -}/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : setCurvature -* DESCRIPTION : This method sets the curvature -* ARGUMENTS : The curvature value to be set -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeature::setCurvature(float curvature) -{ - m_curvature=curvature; -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : setPenUp -* DESCRIPTION : This method sets the penUp -* ARGUMENTS : The penUp value to be set -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeature::setPenUp(bool penUp) -{ - m_penUp=penUp; - - -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : clone -* DESCRIPTION : Clone method for an L7ShapeFeature object -* ARGUMENTS : none -* RETURNS : A copy of the invoking L7ShapeFeature object -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -LTKShapeFeaturePtr L7ShapeFeature::clone() const -{ - L7ShapeFeature* l7Inst = new L7ShapeFeature(); - - l7Inst->setX(this->getX()); - l7Inst->setY(this->getY()); - l7Inst->setXFirstDerv(this->getXFirstDerv()); - l7Inst->setYFirstDerv(this->getYFirstDerv()); - l7Inst->setXSecondDerv(this->getXSecondDerv()); - l7Inst->setYSecondDerv(this->getYSecondDerv()); - l7Inst->setCurvature(this->getCurvature()); - l7Inst->setPenUp(this->isPenUp()); - - return (LTKShapeFeaturePtr)l7Inst; -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : getDistance -* DESCRIPTION : Returns the distance between two L7ShapeFeature objects -* ARGUMENTS : An L7ShapeFeature object the distance of which is to be found from the invoking L7ShapeFeature object -* RETURNS : The squared Euclidean distance -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeature::getDistance(const LTKShapeFeaturePtr& shapeFeaturePtr, float& outDistance) const -{ - float xDiff = 0, yDiff = 0; - float xFirstDervDiff=0, yFirstDervDiff=0, xSecondDervDiff=0, ySecondDervDiff=0; - float curvatureDiff=0; - - L7ShapeFeature *inFeature = (L7ShapeFeature*)(shapeFeaturePtr.operator ->()); - - xDiff = m_x - inFeature->getX(); - yDiff = m_y - inFeature->getY(); - xFirstDervDiff = m_xFirstDerv - inFeature->getXFirstDerv(); - xFirstDervDiff = m_yFirstDerv - inFeature->getYFirstDerv(); - xSecondDervDiff = m_xSecondDerv - inFeature->getXSecondDerv(); - ySecondDervDiff = m_ySecondDerv - inFeature->getYSecondDerv(); - curvatureDiff = m_curvature - inFeature->getCurvature(); - - outDistance = ( (xDiff * xDiff) + (yDiff * yDiff) ); - outDistance += ( (xFirstDervDiff * xFirstDervDiff) + (yFirstDervDiff * yFirstDervDiff) ); - outDistance += ( (xSecondDervDiff * xSecondDervDiff) + (ySecondDervDiff * ySecondDervDiff) ); - outDistance += ( (curvatureDiff * curvatureDiff)); -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : initialize -* DESCRIPTION : This method initializes an L7ShapeFeature object from a string -* ARGUMENTS : The string containing the feature values -* RETURNS : SUCCESS on successful completion -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -int L7ShapeFeature::initialize(const string& initString) -{ - stringVector tokens; - - LTKStringUtil::tokenizeString(initString, m_data_delimiter, tokens); - - //Token size must be eight - if(tokens.size() != 8) - return FAILURE; //Returning an error - - m_x = LTKStringUtil::convertStringToFloat(tokens[0]); - m_y = LTKStringUtil::convertStringToFloat(tokens[1]); - m_xFirstDerv = LTKStringUtil::convertStringToFloat(tokens[2]); - m_yFirstDerv = LTKStringUtil::convertStringToFloat(tokens[3]); - m_xSecondDerv = LTKStringUtil::convertStringToFloat(tokens[4]); - m_ySecondDerv = LTKStringUtil::convertStringToFloat(tokens[5]); - m_curvature= LTKStringUtil::convertStringToFloat(tokens[6]); - - if(atoi(tokens[7].c_str()) == 1) - m_penUp = true; - else - m_penUp = false; - - return SUCCESS; -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : toString -* DESCRIPTION : This method prints the components of the feature object a string. -* ARGUMENTS : pointer to char -* RETURNS : The feature object in string format -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeature::toString(string& strFeat) const -{ - ostringstream tempString; - - tempString << m_x << m_data_delimiter << m_y << m_data_delimiter << - m_xFirstDerv << m_data_delimiter << - m_yFirstDerv << m_data_delimiter << - m_xSecondDerv << m_data_delimiter << - m_ySecondDerv << m_data_delimiter << - m_curvature << m_data_delimiter << - m_penUp ; - - - strFeat = tempString.str(); - -} -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : addFeature -* DESCRIPTION : This method adds the passed L7ShapeFeature object to the invoking L7ShapeFeature object -* ARGUMENTS : The feature instance to be added -* RETURNS : The result feature object -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -int L7ShapeFeature::addFeature(const LTKShapeFeaturePtr& secondFeature, - LTKShapeFeaturePtr& outResult ) const -{ - L7ShapeFeature* resultFeature = new L7ShapeFeature(); - - L7ShapeFeature *inFeature = (L7ShapeFeature*)(secondFeature.operator ->()); - - resultFeature->setX(m_x + inFeature->getX()); - resultFeature->setY(m_y + inFeature->getY()); - resultFeature->setXFirstDerv(m_xFirstDerv + inFeature->getXFirstDerv()); - resultFeature->setYFirstDerv(m_yFirstDerv + inFeature->getYFirstDerv()); - resultFeature->setXSecondDerv(m_xSecondDerv + inFeature->getXSecondDerv()); - resultFeature->setYSecondDerv(m_ySecondDerv + inFeature->getYSecondDerv()); - resultFeature->setCurvature(m_curvature + inFeature->getCurvature()); - resultFeature->setPenUp(m_penUp); - - outResult = LTKShapeFeaturePtr(resultFeature); - - return SUCCESS; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : subtractFeature -* DESCRIPTION : This method subtracts the elements of the passed L7ShapeFeature object from the invoking L7ShapeFeature object. -* ARGUMENTS : -* RETURNS : The result feature object -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -int L7ShapeFeature::subtractFeature(const LTKShapeFeaturePtr& secondFeature, - LTKShapeFeaturePtr& outResult ) const -{ - L7ShapeFeature* resultFeature = new L7ShapeFeature(); - - L7ShapeFeature *inFeature = (L7ShapeFeature*)(secondFeature.operator ->()); - - resultFeature->setX(m_x-inFeature->getX()); - resultFeature->setY(m_y-inFeature->getY()); - resultFeature->setXFirstDerv(m_xFirstDerv - inFeature->getXFirstDerv()); - resultFeature->setYFirstDerv(m_yFirstDerv - inFeature->getYFirstDerv()); - resultFeature->setXSecondDerv(m_xSecondDerv - inFeature->getXSecondDerv()); - resultFeature->setYSecondDerv(m_ySecondDerv - inFeature->getYSecondDerv()); - resultFeature->setCurvature(m_curvature - inFeature->getCurvature()); - resultFeature->setPenUp(m_penUp); - - outResult = LTKShapeFeaturePtr(resultFeature); - - return SUCCESS; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : scaleFeature -* DESCRIPTION : This method mulitplies the elements of the invoking L7ShapeFeature object by alpha. -* ARGUMENTS : alpha which is the scaling factor -* RETURNS : The scaled feature object -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -int L7ShapeFeature::scaleFeature(float alpha, LTKShapeFeaturePtr& outResult) const -{ - L7ShapeFeature* resultFeature = new L7ShapeFeature(); - - resultFeature->setX(m_x * alpha); - resultFeature->setY(m_y * alpha); - resultFeature->setXFirstDerv(m_xFirstDerv * alpha); - resultFeature->setYFirstDerv(m_yFirstDerv * alpha); - resultFeature->setXSecondDerv(m_xSecondDerv * alpha); - resultFeature->setYSecondDerv(m_ySecondDerv * alpha); - resultFeature->setCurvature(m_curvature * alpha); - resultFeature->setPenUp(m_penUp); - - outResult = LTKShapeFeaturePtr(resultFeature); - - return SUCCESS; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : toFloatVector -* DESCRIPTION : This method converts the feature instance to a floatVector. -* ARGUMENTS : The float vector passed by reference -* RETURNS : 0 on success. -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -int L7ShapeFeature::toFloatVector(floatVector& floatVec) -{ - floatVec.push_back(m_x); - floatVec.push_back(m_y); - floatVec.push_back(m_xFirstDerv); - floatVec.push_back(m_yFirstDerv); - floatVec.push_back(m_xSecondDerv); - floatVec.push_back(m_ySecondDerv); - floatVec.push_back(m_curvature); - - if(m_penUp == true) - floatVec.push_back(1.0); - else - floatVec.push_back(0.0); - - return SUCCESS; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : toIntVector -* DESCRIPTION : This method converts the feature instance to an intVector. -* ARGUMENTS : The integer vector passed by reference -* RETURNS : 0 on success. -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -int L7ShapeFeature::toIntVector(intVector& intVec) -{ - intVec.push_back(m_x); - intVec.push_back(m_y); - intVec.push_back(m_xFirstDerv); - intVec.push_back(m_yFirstDerv); - intVec.push_back(m_xSecondDerv); - intVec.push_back(m_ySecondDerv); - intVec.push_back(m_curvature); - intVec.push_back(m_penUp); - - return SUCCESS; -} - -/*************************************************************************** -* AUTHOR : Nidhi Sharma -* DATE : 23-Apr-2008 -* NAME : initialize -* DESCRIPTION : -* ARGUMENTS : -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author: Date Description: - -*****************************************************************************/ -int L7ShapeFeature::initialize(const floatVector& initFloatVector) -{ - - if (initFloatVector.size() == 0) - { - return FAILURE; - } - - m_x = initFloatVector[0]; - m_y = initFloatVector[1]; - m_xFirstDerv = initFloatVector[2]; - m_yFirstDerv = initFloatVector[3]; - m_xSecondDerv = initFloatVector[4]; - m_ySecondDerv = initFloatVector[5]; - m_curvature = initFloatVector[6]; - - if(initFloatVector[7] == 1) - { - m_penUp = true; - } - else - { - m_penUp = false; - } - - return SUCCESS; -} - -/*************************************************************************** -* AUTHOR : Nidhi Sharma -* DATE : 23-Apr-2008 -* NAME : getFeatureDimension -* DESCRIPTION : -* ARGUMENTS : -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author: Date Description: - -*****************************************************************************/ - -int L7ShapeFeature::getFeatureDimension() -{ - return 8; -} diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.h deleted file mode 100644 index 6c767112..00000000 --- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.h +++ /dev/null @@ -1,267 +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-02-20 10:03:51 +0530 (Wed, 20 Feb 2008) $ - * $Revision: 423 $ - * $Author: sharmnid $ - * - ************************************************************************/ -#include "LTKShapeFeature.h" - - - -/** @ingroup L7ShapeFeatureExtractor -* @brief The feature representation class for L7 features -* This class represents X and Y coordinates, Normalized X and Y First Derivatives, Normalized X and Y Second Derivatives and the Curvature values of a point. -* @class L7ShapeFeature -* -*/ -class L7ShapeFeature : public LTKShapeFeature -{ - /** @name private data members */ - //@{ - -private: - /** @brief X value */ - float m_x; - - /** @brief Y value */ - float m_y; - - /** @brief Normalized First Derivative w.r.t X */ - float m_xFirstDerv; - - /** @brief Normalized First Derivative w.r.t Y */ - float m_yFirstDerv; - - /** @brief Normalized Second Derivative w.r.t X */ - float m_xSecondDerv; - - /** @brief Normalized Second Derivative w.r.t Y */ - float m_ySecondDerv; - - /** @brief Curvature value */ - float m_curvature; - - /** @brief Pen-up information */ - bool m_penUp; - - /** @brief Delimiter character */ - string m_data_delimiter; - //@} - -public: - - /** @name Constructors and Destructor */ - //@{ - - /** - * Default Constructor. - */ - L7ShapeFeature(); - - /** parameterized constructor - */ - L7ShapeFeature(float inX, float inY, float inXFirstDerv, float inYFirstDerv, - float inXSecondDerv, float inYSecondDerv, float inCurvature, - bool inPenUp); - - /** - * Default destructor. - */ - ~L7ShapeFeature(); - - /** - * Returns the value of the class data member L7ShapeFeature::m_x - */ - float getX() const; - - /** - * Returns the value of the class data member L7ShapeFeature::m_y - */ - float getY() const; - - /** - * Returns the value of the class data member L7ShapeFeature::m_xFirstDerv - */ - float getXFirstDerv() const; - - /** - * Returns the value of the class data member L7ShapeFeature::m_yFirstDerv - */ - float getYFirstDerv() const; - - /** - * Returns the value of the class data member L7ShapeFeature::m_xSecondDerv - */ - float getXSecondDerv() const; - - /** - * Returns the value of the class data member L7ShapeFeature::m_ySecondDerv - */ - float getYSecondDerv() const; - - /** - * Returns the value of the class data member L7ShapeFeature::m_curvature - */ - float getCurvature() const; - - /** - * Returns the value of the class data member L7ShapeFeature::m_penUp - */ - bool isPenUp() const; - - /** - * Sets the value of L7ShapeFeature::m_x - */ - void setX(float x); - - /** - * Sets the value of L7ShapeFeature::m_y - */ - void setY(float y); - - /** - * Sets the value of L7ShapeFeature::m_xFirstDerv - */ - void setXFirstDerv(float xFirstDerv); - - /** - * Sets the value of L7ShapeFeature::m_yFirstDerv - */ - - void setYFirstDerv(float yFirstDerv); - /** - * Sets the value of L7ShapeFeature::m_xSecondDerv - */ - void setXSecondDerv(float xSecondDerv); - - /** - * Sets the value of L7ShapeFeature::m_ySecondDerv - */ - void setYSecondDerv(float ySecondDerv); - - /** - * Sets the value of L7ShapeFeature::m_curvature - */ - void setCurvature(float curvature); - - /** - * Sets the value of L7ShapeFeature::m_penUp - */ - void setPenUp(bool penUp); - - - /** - * @brief Initializes an instance of L7ShapeFeature from the string passed as parameter. - * - * <b>Semantics</b> - * - * - Tokenize the input string on L7ShapeFeature::m_data_delimiter using StringTokenizer::tokenizeString - * - Initialize the data members of the class with the tokens returned. - * - * @param initString : string& : Reference to the initialization string. - * - * @return FAILURE : If the initalization string contains more than or less than seven tokens (after tokenizing on L7ShapeFeature::m_data_delimiter) - * @return SUCCESS : If initialization done without any errors. - * - */ - - //see interface - int initialize(const string& initString); - - int initialize(const floatVector& initFloatVector); - - /** - * @brief Gives the string representation of the L7ShapeFeature instance - */ - //see interface - void toString(string& strFeat) const; - - /** - * This method implements the clone pattern and returns a cloned instance of the invoking L7ShapeFeature object - */ - LTKShapeFeaturePtr clone() const; - - - /** - * @brief Computes the Euclidean Distance between two L7ShapeFeature instances. - * Computes the square root of ( (m_x-passed_x)^2 + (m_y-passed_y)^2+ (m_xFirstDerv-passed_x1)^2 +(m_yFirstDerv-passed_y1)^2+(m_xSecondDerv-passed_x2)^2+(m_ySecondDerv-passed_y2)^2+(m_curvature-passed_curvature)^2). - * @param f : LTKShapeFeature* : Base class pointer holding a pointer to L7ShapeFeature instance from which the distance to the invoking object is to be computed. - * - * @return float : Distance between two points in the LocalSeven feature representation - * - */ - void getDistance(const LTKShapeFeaturePtr& shapeFeaturePtr, float& outDistance) const; - - /** - * @brief Adds two L7ShapeFeature instances. - * Computes the sum of the member variables of the passed LTKShapeFeature object and the invoking LTKShapeFeature object. The new member variables are stored in a newly created L7ShapeFeature object. Neither the invoking nor the passed object object are changed. - * new_x=m_x+ (*secondFeature).m_x; - * @param secondFeature : LTKShapeFeature* : Base class pointer holding a pointer to the L7ShapeFeature instance which is to be added to the invoking L7ShapeFeature object. - * - * @return LTKShapeFeature* : Base class pointer to the L7ShapeFeature instance holding the result of the addition operation. - * - */ - int addFeature(const LTKShapeFeaturePtr& secondFeature, LTKShapeFeaturePtr& outResult ) const; - - /** - * @brief Subtracts two L7ShapeFeature instances. - * Subtracts the member variables of the passed LTKShapeFeature object from the invoking LTKShapeFeature object. The new member variables are stored in a newly created L7ShapeFeature object, which is returned. Neither the invoking nor the passed object object are changed. - * new_x=m_x-(*secondFeature).m_x; - * - * @param secondFeature : LTKShapeFeature* : Base class pointer holding a pointer to the L7ShapeFeature instance which is to be subtracted. - * - * @return LTKShapeFeature* : Base class pointer to the L7ShapeFeature instance holding the result of the subtraction operation. - * - */ - int subtractFeature(const LTKShapeFeaturePtr& secondFeature, LTKShapeFeaturePtr& outResult ) const; - - /** - * @brief Scales the L7ShapeFeature feature by a scalar (float value). - * Mulitplies all the member variables of the invoking L7ShapeFeature object by alpha. The new member variables are stored in a newly created L7ShapeFeature object, which is returned. The invoking LTKShapeFeature object is not changed. - * new_x=alpha*m_x - * - * @param alpha : float: The float value by which all the member variables should be multiplied. - * @return LTKShapeFeature* : Base class pointer to the L7ShapeFeature instance holding the result of the scaling operation . - * - */ - int scaleFeature(float alpha, LTKShapeFeaturePtr& outResult) const; - - /** - * Converts the LocalSeven feature instance into a float vector. The elements of the float vector are m_x,m_y,m_xFirstDerv,m_yFirstDerv,m_xSecondDerv,m_ySecondDerv and m_curvature in this order. - * @param floatVec: vector<float>&: The float vector which will contain the member values. - * @return int : returns SUCCESS or FAILURE - * - */ - int toFloatVector(vector<float>& floatVec); - - /** - * Converts the LocalSeven feature instance into a integer vector. The elements of the int vector are m_x,m_y,m_xFirstDerv,m_yFirstDerv,m_xSecondDerv,m_ySecondDerv and m_curvature in this order. - * @param intVec: vector<int>&: The int vector which will contain the member values. - * @return int : returns SUCCESS or FAILURE - * - */ - int toIntVector(vector<int>& intVec); - - int getFeatureDimension(); -}; diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeatureExtractor.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeatureExtractor.cpp deleted file mode 100644 index 19e6a9c1..00000000 --- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeatureExtractor.cpp +++ /dev/null @@ -1,587 +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-02-20 10:03:51 +0530 (Wed, 20 Feb 2008) $ - * $Revision: 423 $ - * $Author: sharmnid $ - * - ************************************************************************/ -/************************************************************************ - * FILE DESCR: Implementation of RunShaperec tool - * - * CONTENTS: - * extractFeatures - * getShapeFeatureInstance - * clearFeatureVector - * computeDerivativeDenominator - * computeDerivative - * - * AUTHOR: Naveen Sundar G. - * - * DATE: August 30, 2005 - * CHANGE HISTORY: - * Author Date Description of change - ************************************************************************/ - - -#include "L7ShapeFeatureExtractor.h" -#include "L7ShapeFeature.h" -#include "LTKTraceGroup.h" -#include "LTKTrace.h" -#include "LTKChannel.h" -#include "LTKTraceFormat.h" -#include "LTKConfigFileReader.h" -#include "LTKMacros.h" -#include "LTKException.h" -#include "LTKErrors.h" -#include "LTKLoggerUtil.h" - -/****************************************************************************** -* AUTHOR : Dinesh M -* DATE : 1-Oct-2007 -* NAME : L7ShapeFeatureExtractor -* DESCRIPTION : parameterized constructor -* ARGUMENTS : -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date -*******************************************************************************/ -L7ShapeFeatureExtractor::L7ShapeFeatureExtractor(const LTKControlInfo& controlInfo): -m_radius(FEATEXTR_L7_DEF_RADIUS) -{ - 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: L7ShapeFeatureExtractor::L7ShapeFeatureExtractor()" <<endl; - - throw LTKException(returnVal); - } - - LOG(LTKLogger::LTK_LOGLEVEL_DEBUG) << "Exiting " << - "L7ShapeFeatureExtractor::L7ShapeFeatureExtractor()" << endl; - -} - -/********************************************************************************** -* AUTHOR : Dinesh M -* 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 L7ShapeFeatureExtractor::readConfig(const string& cfgFilePath) -{ - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Entering " << - "L7ShapeFeatureExtractor::readConfig()" << endl; - - LTKConfigFileReader* configurableProperties = NULL; - string tempStringVar = ""; - - try - { - configurableProperties = new LTKConfigFileReader(cfgFilePath); - - int errorCode = configurableProperties->getConfigValue(L7RADIUS, tempStringVar); - - if( errorCode == SUCCESS) - { - if (setRadius(atoi((tempStringVar).c_str())) != SUCCESS) - { - LOG( LTKLogger::LTK_LOGLEVEL_ERR) << "Error: " << - ECONFIG_FILE_RANGE << " : " << - getErrorMessage(ECONFIG_FILE_RANGE) << - " L7ShapeFeatureExtractor::readConfig" <<endl; - - throw LTKException(ECONFIG_FILE_RANGE); - } - } - } - - catch(LTKException e) - { - delete configurableProperties; - - int eCode = e.getErrorCode(); - - LOG( LTKLogger::LTK_LOGLEVEL_ERR) << "Error: " << eCode << - " : " << getErrorMessage(eCode) << - " L7ShapeFeatureExtractor::readConfig" <<endl; - - LTKReturnError(eCode); - } - delete configurableProperties; - - LOG( LTKLogger::LTK_LOGLEVEL_DEBUG) << "Exiting " << - "L7ShapeFeatureExtractor::readConfig()" << endl; - - return SUCCESS; - -} - -/********************************************************************************** -* AUTHOR : Dinesh M -* DATE : 1-Oct-2007 -* NAME : setRadius -* DESCRIPTION : set the radius(the size of window) to compute L7 features -* ARGUMENTS : -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date -*************************************************************************************/ -int L7ShapeFeatureExtractor::setRadius(int radius) -{ - int returnVal = FAILURE; - - if ( radius > 0 ) - { - m_radius = radius; - returnVal = SUCCESS; - } - - return returnVal; -} - -/********************************************************************************** -* AUTHOR : Nidhi Sharma -* DATE : 15-Feb-2008 -* NAME : getRadius -* DESCRIPTION : -* ARGUMENTS : -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date -*************************************************************************************/ -int L7ShapeFeatureExtractor::getRadius() -{ - return m_radius; -} - - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : extractFeatures -* DESCRIPTION : Extracts L7 features from a trace group -* ARGUMENTS : The trace group from which features have to be extracted -* RETURNS : vector of L7ShapeFeature objects -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -int L7ShapeFeatureExtractor::extractFeatures(const LTKTraceGroup& inTraceGroup, - vector<LTKShapeFeaturePtr>& outFeatureVec) -{ - - LOG(LTKLogger::LTK_LOGLEVEL_DEBUG) << "Entering " << - "L7ShapeFeatureExtractor::extractFeatures()" << endl; - - L7ShapeFeature* featurePtr = NULL; - float delta; - int currentStrokeSize; - int numPoints; - - int numberOfTraces = inTraceGroup.getNumTraces(); - - if (numberOfTraces == 0 ) - { - LOG(LTKLogger::LTK_LOGLEVEL_ERR) << "Error :" << - EEMPTY_TRACE_GROUP << " : " << getErrorMessage(EEMPTY_TRACE_GROUP) << - "L7ShapeFeatureExtractor::extractFeatures()" << endl; - - LTKReturnError(EEMPTY_TRACE_GROUP); - } - - - LTKTraceVector allTraces = inTraceGroup.getAllTraces(); - LTKTraceVector::iterator traceIter = allTraces.begin(); - LTKTraceVector::iterator traceEnd = allTraces.end(); - - //the feature vector - vector<float> xVec; - vector<float> yVec; - vector<bool> penUp; - - //concatentating the strokes - 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) << - "L7ShapeFeatureExtractor::extractFeatures()" << endl; - - LTKReturnError(EEMPTY_TRACE); - } - - for(int point=0;point<currentStrokeSize;point++) - { - xVec.push_back(tempxVec[point]); - yVec.push_back(tempyVec[point]); - - if(point == currentStrokeSize - 1 ) - { - penUp.push_back(true); - } - else - { - penUp.push_back(false); - } - } - } - //concatentating the strokes - - numPoints=xVec.size(); - - vector<float> normfirstderv_x(numPoints); // Array to store the first normalized derivative w.r.t x - vector<float> normfirstderv_y(numPoints); // Array to store the first normalized derivative w.r.t y - vector<float> normsecondderv_x(numPoints); // Array to store the second normalized derivative w.r.t x - vector<float> normsecondderv_y(numPoints); // Array to store the second normalized derivative w.r.t y - vector<float> curvature(numPoints); // Array to store the curvature - - computeDerivative(xVec,yVec,normfirstderv_x,normfirstderv_y,m_radius); - - computeDerivative(normfirstderv_x,normfirstderv_y,normsecondderv_x,normsecondderv_y,m_radius); - - for(int i=0; i<numPoints; ++i) - { - //computing the curvature - delta= sqrt(pow(pow(normfirstderv_x[i],2)+pow(normfirstderv_y[i],2),3)); - curvature[i]= ((normfirstderv_x[i]*normsecondderv_y[i]) - (normsecondderv_x[i]*normfirstderv_y[i]))/(delta+EPS); - - featurePtr = new L7ShapeFeature(xVec[i], yVec[i], - normfirstderv_x[i], normfirstderv_y[i], - normsecondderv_x[i], normsecondderv_y[i], - curvature[i], penUp[i]); - //populating the feature vector - outFeatureVec.push_back(LTKShapeFeaturePtr(featurePtr)); - featurePtr = NULL; - } - - LOG(LTKLogger::LTK_LOGLEVEL_DEBUG) << "Exiting " << - "L7ShapeFeatureExtractor::extractFeatures()" << endl; - - return SUCCESS; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : getShapeFeatureInstance -* DESCRIPTION : Returns an L7ShapeFeature instance -* ARGUMENTS : -* RETURNS : An L7ShapeFeature instance -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -LTKShapeFeaturePtr L7ShapeFeatureExtractor::getShapeFeatureInstance() -{ - LTKShapeFeaturePtr tempPtr(new L7ShapeFeature); - return tempPtr; -} - - -/****************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : Sept-10-2007 -* NAME : convertFeatVecToTraceGroup -* DESCRIPTION : -* ARGUMENTS : -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description -******************************************************************************/ -int L7ShapeFeatureExtractor::convertFeatVecToTraceGroup( - const vector<LTKShapeFeaturePtr>& shapeFeature, - LTKTraceGroup& outTraceGroup) -{ - LOG(LTKLogger::LTK_LOGLEVEL_DEBUG) << "Entering " << - "L7ShapeFeatureExtractor::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); - - for(int count=0;count<(int)shapeFeature.size();count++) - { - float Xpoint, Ypoint; - bool penUp; - - L7ShapeFeature* ptr = (L7ShapeFeature*)(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 " << - "L7ShapeFeatureExtractor::convertFeatVecToTraceGroup()" << endl; - return SUCCESS; - -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : computeDerivativeDenominator -* DESCRIPTION : Computes the denominator to be used in the derivative computation -* ARGUMENTS : The index used in derivative computation -* RETURNS : The denominator -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -int L7ShapeFeatureExtractor::computeDerivativeDenominator(int index) -{ - int denominator=0; - - for (int i=1;i<=index;i++) - { - - denominator=denominator+i*i; - } - return 2*denominator; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G. -* DATE : 10-AUGUST-2007 -* NAME : computeDerivative -* DESCRIPTION : Computes the derivative -* ARGUMENTS : The input and output vectors. The output vectors are the derivatives of the input vectors -* RETURNS : -* NOTES : -* CHANGE HISTROY -* Author Date Description of change -*************************************************************************************/ -void L7ShapeFeatureExtractor::computeDerivative(const vector<float>& xVec, - const vector<float>& yVec, - vector<float>& dx, - vector<float>& dy, - int index) -{ - int size = xVec.size(); - int denominator = computeDerivativeDenominator(index); - float x,y,diffx,diffy,delta; - float firstderv_x,firstderv_y; - int i,j; - - if(index<size-index) - { - for(i=index; i<size-index; ++i) - { - x= xVec[i]; - y= yVec[i]; - diffx=0; - diffy=0; - - for( j=1;j<=index;j++) - { - diffx = diffx + j*(xVec[i+j]-xVec[i-j]) ; - diffy = diffy + j*(yVec[i+j]-yVec[i-j]) ; - } - - firstderv_x = diffx/denominator; - firstderv_y = diffy/denominator; - delta = sqrt(pow(firstderv_x,2)+pow(firstderv_y,2)); - if(delta!=0) - { - dx[i] = firstderv_x/(delta); - dy[i] = firstderv_y/(delta); - } - else - { - dx[i] = 0; - dy[i] = 0; - } - - - } - - for(i=0;i<index;i++) - { - x= xVec[i]; - y= yVec[i]; - diffx=0; - diffy=0; - - for( j=1;j<=index;j++) - { - diffx = diffx + j*(xVec[i+j]-x) ; - diffy = diffy + j*(yVec[i+j]-y) ; - } - firstderv_x = diffx/denominator; - firstderv_y = diffy/denominator; - delta = sqrt(pow(firstderv_x,2)+pow(firstderv_y,2)); - if(delta!=0) - { - dx[i] = firstderv_x/(delta); - dy[i] = firstderv_y/(delta); - } - else - { - dx[i] = 0; - dy[i] = 0; - } - - } - - for(i=size-index;i<=size-1;i++) - { - x= xVec[i]; - y= yVec[i]; - diffx=0; - diffy=0; - - for( j=1;j<=index;j++) - { - diffx = diffx + j*(x-xVec[i-j]) ; - diffy = diffy + j*(y-yVec[i-j]) ; - } - firstderv_x = diffx/denominator; - firstderv_y = diffy/denominator; - delta = sqrt(pow(firstderv_x,2)+pow(firstderv_y,2)); - if(delta!=0) - { - dx[i] = firstderv_x/(delta); - dy[i] = firstderv_y/(delta); - } - else - { - dx[i] = 0; - dy[i] = 0; - } - } - } - if(index>size-index) - { - for(i=0; i<size; ++i) - { - x= xVec[i]; - y= yVec[i]; - diffx=0; - diffy=0; - if((0<i+j)&(i+j<size)) - { - for( j=1;j<=index;j++) - { - diffx = diffx + j*(xVec[i+j]-x) ; - diffy = diffy + j*(yVec[i+j]-y) ; - } - } - else - { - for(j=1;j<=index;j++) - { - diffx = diffx + j*(x-xVec[i-j]) ; - diffy = diffy + j*(y-yVec[i-j]) ; - } - } - - firstderv_x = diffx/denominator; - firstderv_y = diffy/denominator; - delta = sqrt(pow(firstderv_x,2)+pow(firstderv_y,2)); - if(delta!=0) - { - dx[i] = firstderv_x/(delta); - dy[i] = firstderv_y/(delta); - } - else - { - dx[i] = 0; - dy[i] = 0; - } - - } - } -} - diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeatureExtractor.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeatureExtractor.h deleted file mode 100644 index 9c48636d..00000000 --- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeatureExtractor.h +++ /dev/null @@ -1,112 +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-02-20 10:03:51 +0530 (Wed, 20 Feb 2008) $ - * $Revision: 423 $ - * $Author: sharmnid $ - * - ************************************************************************/ -#include "LTKShapeFeatureExtractor.h" -/** @ingroup L7ShapeFeatureExtractor -* @brief The feature extractor for L7 features. -* @class L7ShapeFeatureExtractor -* -*/ -#define FEATEXTR_L7_DEF_RADIUS 2 - - -class L7ShapeFeatureExtractor : public LTKShapeFeatureExtractor -{ -private: - int m_radius; - -public: - /** @brief Constructor for the L7 feature extractor - * Gets the cfg file path from the contorInfo - * Reads the cfg variables and poputlates the member variables - * @param controlInfo: LTKControlInfo : The control information - * @return no return value as it is a constructor - */ - L7ShapeFeatureExtractor(const LTKControlInfo& controlInfo); - - /** @brief Extracts L7 features from an LTKTraceGroup - * The XY Coordinate values are extracted from the trace gruoup. - * Using the coordinate values, normalized first derivatives are computed. - * After computing the first derivatives, the normalized second derivatives and the curvature are computed. The second derivative and curvature computation occur simultaneously. - * @param inTraceGroup: LTKTraceGroup& : The trace group from which local seven features have to be extracted - * @return LTKShapeFeaturePtr* : A vector of pointers to LTKShapeFeature objects. The pointers point to instances of the L7ShapeFeature class. The vector contains local-seven features extracted from the trace group. - */ - - int extractFeatures(const LTKTraceGroup& inTraceGroup, - vector<LTKShapeFeaturePtr>& outFeatureVec); - - /** @brief Returns an instance of the L7ShapeFeature class - * @return LTKShapeFeature*: The returned empty L7ShapeFeature instance. - */ - LTKShapeFeaturePtr getShapeFeatureInstance(); - - /** @brief Converts a feature vector to trace group - * @param shapeFeature : LTKShapeFeaturePtr* : The feature vector to be converted to a trace group. - * @param outTraceGroup : LTKTraceGroup& : The output trace group - */ - //see interface - int convertFeatVecToTraceGroup(const vector<LTKShapeFeaturePtr>& shapeFeature, - LTKTraceGroup& outTraceGroup); - - int getRadius(); - -private: - - /** @brief Computes the denominator for derivative calculation - * @param index : int: The index used in derivative computation - * @return int : The denominator used in derivative computation - */ - int computeDerivativeDenominator(int index); - - /** @brief Computes the derivative for two input sequences - * @param xVec : vector<float>&: Input x vector. - * @param yVec : vector<float>&: Input y vector. - * @param dx : vector<float>&: Derivative vector of x - * @param dy : vector<float>&: Derivative vector of y - * @param index : int : The window size used in derivative computation - * - */ - void computeDerivative(const vector<float>& xVec, - const vector<float>& yVec, - vector<float>& dx, - vector<float>& dy, - int index); - - /** @brief reads the cfg file and sets the member variables - * @param cfgFilePath : const string&: The path of the cfg file to be opened - * @return int : The sucess or failure of the function - */ - int readConfig(const string& cfgFilePath); - - /** @validates the value passed and sets the member variable - * @param radius : const int: The value of the variable to be set - * @return int : The sucess or failure of the function - */ - int setRadius(int radius); - - -}; diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.cpp deleted file mode 100644 index eca6cf84..00000000 --- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.cpp +++ /dev/null @@ -1,105 +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-02-20 10:03:51 +0530 (Wed, 20 Feb 2008) $ - * $Revision: 423 $ - * $Author: sharmnid $ - * - ************************************************************************/ -// l7.cpp : Defines the entry point for the DLL application. - -#include "l7.h" -#include "L7ShapeFeatureExtractor.h" -#include "LTKShapeFeatureExtractor.h" -#include "L7ShapeFeature.h" -#include "LTKErrors.h" - - -#ifdef _WIN32 -#include <windows.h> -BOOL APIENTRY DllMain( HANDLE hModule, - DWORD ul_reason_for_call, - LPVOID lpReserved - ) -{ - switch (ul_reason_for_call) - { - case DLL_PROCESS_ATTACH: - case DLL_THREAD_ATTACH: - case DLL_THREAD_DETACH: - case DLL_PROCESS_DETACH: - break; - } - return TRUE; -} -#endif - -/********************************************************************************** -* AUTHOR : Naveen Sundar G -* DATE : 10-Aug-2007 -* NAME : createFeatureExtractor -* DESCRIPTION : Creates instance of type l7ShapeFeatureExtractor and retuns of type - LTKShapeFeatureExtractor. (Acts as a Factory Method). -* ARGUMENTS : -* RETURNS : returns an instace of type LTKShapeFeatureExtractor. -* NOTES : -* CHANGE HISTORY -* Author Date Description -*************************************************************************************/ -int createShapeFeatureExtractor(const LTKControlInfo& controlInfo, - LTKShapeFeatureExtractor** outFeatureExtractor) -{ - try - { - *outFeatureExtractor = new L7ShapeFeatureExtractor(controlInfo); - } - catch(LTKException e) - { - *outFeatureExtractor = NULL; - - LTKReturnError(e.getErrorCode()); - } - - return SUCCESS; -} - -/********************************************************************************** -* AUTHOR : Naveen Sundar G -* DATE : 10-Aug-2007 -* NAME : deleteShapeFeatureExtractor -* DESCRIPTION : Destroy the instance by taking the address as its argument. -* ARGUMENTS : Address of LTKShapeRecognizerFeatureExtractor instnace. -* RETURNS : Returns 0 on Success -* NOTES : -* CHANGE HISTORY -* Author Date Description -*************************************************************************************/ -int deleteShapeFeatureExtractor(LTKShapeFeatureExtractor *obj) -{ - if ( obj != NULL ) - { - delete obj; - obj = NULL; - } - - return SUCCESS; -} diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.def b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.def deleted file mode 100644 index 9a185d39..00000000 --- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - createShapeFeatureExtractor @1 - deleteShapeFeatureExtractor @2 diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.h deleted file mode 100644 index c0f64a01..00000000 --- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.h +++ /dev/null @@ -1,94 +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-02-20 10:03:51 +0530 (Wed, 20 Feb 2008) $ - * $Revision: 423 $ - * $Author: sharmnid $ - * - ************************************************************************/ -// The following ifdef block is the standard way of creating macros which make exporting -// from a DLL simpler. All files within this DLL are compiled with the L7_EXPORTS -// symbol defined on the command line. this symbol should not be defined on any project -// that uses this DLL. This way any other project whose source files include this file see -// L7_API functions as being imported from a DLL, wheras this DLL sees symbols -// defined with this macro as being exported. -#ifdef _WIN32 -#ifdef L7_EXPORTS -#define L7_API __declspec(dllexport) -#else -#define L7_API __declspec(dllimport) -#endif //ifdef L7_EXPORTS -#else -#define L7_API -#endif //#ifdef _WIN32 - -#include "LTKTypes.h" - -class LTKShapeFeatureExtractor; -class LTKShapeFeature; - -/** @defgroup L7ShapeFeatureExtractor -*@brief The L7ShapeFeatureExtractor -*/ - -/** -* @ingroup L7ShapeFeatureExtractor -* @file L7.cpp -* <p> -* The functions exported by the DLL -* - ::createShapeFeatureExtractor -* - ::deleteShapeFeatureExtractor -* - ::getCurrentVersion -* - ::deleteShapeFeaturePtr -*/ - -/** -* @brief Returns a pointer to the instance of L7ShapeFeatureExtractor -* -* <p> -* This function is based on run-time polymorphism. It creates an instance of -* L7ShapeFeatureExtractor at run-time and returns it as a pointer to the base class <i>LTKShapeFeatureExtractor</i> -* </p> -* -* @param none -* -* @return Pointer to LTKShapeFeatureExtractor -*/ -//extern "C" L7_API int createShapeFeatureExtractor(const LTKControlInfo& controlInfo, LTKShapeFeatureExtractor**); -extern "C" L7_API int createShapeFeatureExtractor( - const LTKControlInfo& controlInfo, - LTKShapeFeatureExtractor** outFeatureExtractor); - -/** -* @brief Deletes the feature extractor instance. -* -* <p> -* This function cleans up all the memory allocations done by the feature extractor by calling it's destructor. -* </p> -* -* @param featureExtractorPtr - Pointer to LTKShapeFeatureExtractor. -* -* @return 0 on Success -*/ - -//smart pointer for LTKShapeFeatureExtractor?? -extern "C" L7_API int deleteShapeFeatureExtractor(LTKShapeFeatureExtractor *featureExtractorPtr); diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.pro b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.pro deleted file mode 100644 index 2372c2cf..00000000 --- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/l7.pro +++ /dev/null @@ -1,22 +0,0 @@ -LIPILIBS = ltkcommon ltkutil featureextractorcommon -include(../../../../lipiplugin.pri) - -INCLUDEPATH += \ - ../../../../util/lib \ - ../common \ - -HEADERS += \ - l7.h \ - L7ShapeFeature.h \ - L7ShapeFeatureExtractor.h \ - -SOURCES += \ - l7.cpp \ - L7ShapeFeature.cpp \ - L7ShapeFeatureExtractor.cpp \ - -win32 { - DEFINES += L7_EXPORTS - LIBS += Advapi32.lib - #DEF_FILE = l7.def -} |