Compiled Resource For Hand Gesture Recognition Using Open CV.

It’s been a long time since i did my final year project for Hand Gesture Recognition.

There have been a lot of questions on Open CV social media forums that is that possible to do hand gesture recognition and what are the tools that are required to do this stuff. So i decided to compile all the resource work which i studied while working on my final year project.

Here is the complete list of open CV tools and different research papers that i read to to do hand gesture recognition efficiently.

Research paper Hand Gesture Recognition

Research Paper Hand Gesture Recognition 2

Research Paper Hand Gesture Recognition 3

Research Paper Hand Gesture Recognition 4

Research Paper Hand Gesture Recognition 6

Research Paper Hand Gesture Recognition 7

Akl-Ahmad-201011-MASc-thesis

classification_challenge07

depth4free_SIGGRAPH

Research Paper Hand Gesture Recognition 8

DTWAlgorithm

Dynamic Programming Algorithms in Speech Recognition

EE3682011Spring_GuestLecture_Part3

GabayanLansel-GestureRecognition

Research Paper Hand Gesture Recognition 9

Research Paper Hand Gesture Recognition 10

Research Paper Hand Gesture Recognition 11

Research Paper Hand Gesture Recognition 12

opencv_tutorials

Pattern-Recognition-and-Machine-Learning-Christophe-M-Bishop

Research Paper Hand Gesture Recognition 13

tscu_tutorial

Tutorial-2-OpenCV-for-Android-Setup-Linux-API8

Word Image Matching Using Dynamic Time Warping

yoshida_comorea2013

FastDTW_paper

Advertisements

Checking of repetition of inputs and basic items FLEX

Flex File 

%{

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char *s;
int i=0 ;
int f=0;
char arr[8][8];

%}

Operator [+|*|/|>|<|=]

Parenthsis [(|)]

Quoted [“][a-zA-Z][a-zA-Z_0-9_?_, ]*[“]

Integers [0-9]+

Identifier [a-zA-Z][a-zA-Z_0-9]*

%%

[ \t\n] ;

int|float|decimal|double|array|list printf( “The sentence contains the special DataType = %s\n”, yytext );

if|then|else|endif|print|newline printf( “The sentence contains the special keyword = %s\n”, yytext );

“;” printf( “The sentence contains the special Semicolon = %s\n”, yytext );

“-” printf( “The sentence contains the special operator = %s\n”, yytext );
“=>” printf( “The sentence contains the special operator = %s\n”, yytext );
“>=” printf( “The sentence contains the special operator = %s\n”, yytext );
“<=” printf( “The sentence contains the special operator = %s\n”, yytext );
“=<” printf( “The sentence contains the special operator = %s\n”, yytext );
“==” printf( “The sentence contains the special operator = %s\n”, yytext );
“!=” printf( “The sentence contains the special operator = %s\n”, yytext );

{Parenthsis} printf( “The sentence contains the special Parenthesis = %s\n”, yytext );

{Quoted} s=yytext; s++; s[strlen(s)-1] =”; printf( “The sentence contains the special quote = %s \n”,s);

{Identifier} i=0; for(i;i<8;i++) {if(strcmp(arr[i], yytext)==0){printf(” Identifier Already Exsist = %s \n “,yytext);i=1;break;}} if(i>1){printf(“The sentence contains the special Identifier = %s \n”,yytext);strcpy(arr[f],yytext);++f;};

{Integers} printf(“The sentence contains the special integer = %d \n”,atoi(yytext));

 

{Operator} printf(“The sentence contains the special operator = %s\n”,yytext);

 

 

 

%%

int main(int argc,char* argv[])
{
yyin=fopen(argv[1],”r”);
yylex();

 

 

}

 

 

Try Catch (Fariz)

%{

#include “ccproject.tab.h”
#include<stdlib.h>

%}

%%

[0-9]+ {
yylval=atoi(yytext);
return NUM;
}

“try” { return TRY;}

“int” {return KEYWORD;}

“string” {return KEYWORD;}

“float” {return KEYWORD;}

“catch” { return CATCH;}

“exception” { return KEYWORD;}

“printf” { return KEYWORD;}

“Console.Write” {return KEYWORD;}

“.ToString()” {return CONVERT;}
[a-zA-Z]+ { yylval = *yytext;
return ID;
}
“{” { return OPENBRACE; }

“}” { return CLOSEBRACE;}

” ” { return SPACE;}

[()=;\n] return *yytext;

[\t]

. yyerror (“INVALID INPUT”);

%%
int yywrap(void)
{

return 1;

}

Bison

%{

#include<stdio.h>
void yyerror(char*s);

%}

%token NUM TRY ID CATCH KEYWORD OPENBRACE CLOSEBRACE OPENPAREN CLOSEPAREN SPACE CONVERT

%%

program:
program Statement’\n’
|
;

Statement:project {printf(“SYNTAX ACCEPTED\n”);}
project : TRY ‘\n’ OPENBRACE ‘\n’ E1′;’ ‘\n’ E1′;’ ‘\n’ CLOSEBRACE’\n’ catch_statement ‘\n’ OPENBRACE ‘\n’ E3′(‘ ID CONVERT ‘)”;’ ‘\n’ CLOSEBRACE

E1 : KEYWORD SPACE ID’=’NUM
| KEYWORD SPACE ID’=’ID
| ID
| KEYWORD'(‘ID CONVERT’)’
| NUM
;

E3 :KEYWORD
;
catch_statement : CATCH ‘(‘ type_expression’)’
;
type_expression :KEYWORD SPACE ID
;

%%

void yyerror(char*s) {

printf(“%s\n”,s);

}

int main(void) {

yyparse();
return 1;

}

 

Nested If flex bison

Flex File

%{
#include “if.tab.h”
#include<stdlib.h>

%}

%%

if {return IF;}

“else if” {return ELSEIF;}

else {return ELSE;}

“=” {return EQUAL;}

“(” {return BRO; }

“)” {return BRC; }

“{” {return CBO; }

“}” {return CBC; }

“;” {return SEMI; }

“>=”|”<=”|”==”|”!=”|”<“|”>”|”++”|”–” {
yylval = *yytext;
return multiop;
}
[0-9]+ {yylval=*yytext;return NUM;}

[a-zA-Z]+ {yylval=*yytext;return ID;}

[ \t] ; /* skip whitespace */
%%

int yywrap(void)

{

return 1;

}

Bison File

%{

#include <stdio.h>
void yyerror(char *s);

%}

%token IF BRO ELSE BRC CBO CBC SEMI EQUAL NUM ID ELSEIF multiop

%%

program: program State ‘\n’
|
;
State: IF BRO ID EQUAL ID BRC CBO E1 CBC ELSE CBO ID SEMI CBC {printf(“Accept \n”);}
;

E1:A
| A E1
;

A:IF BRO ID EQUAL ID BRC CBO ID SEMI CBC
| A B
;

B: ELSE CBO ID SEMI CBC
;

%%
void yyerror(char *s)
{

{printf(“\n Syntax is Wrong”);}

}

int main(void)
{
yyparse();
return 0;
}

 

 

While Accepter Bison and Flex

While.Y

%{

#include <stdio.h>
void yyerror(char *s);

%}

%token WHILE BRO BRC CUBRO CUBRC EQUAL ID NUM  INCRE DECRE SEMI

%%
Statement:WHILE BRO E1 BRC CUBRO E2 SEMI E3 CUBRC {printf(“Accept \n”);}

E1:ID EQUAL ID
  |ID EQUAL NUM
  ;
E2:NUM
  |ID
   ;
E3:ID INCRE SEMI
   |ID DECRE SEMI
   |NUM DECRE SEMI
   |NUM INCRE SEMI
;

%%
void yyerror(char *s)
{

{printf(“\n while ghalat”);}

}

int main(void)
{
yyparse();
return 0;
}
While.Flex
%{

#include “while.tab.h”
#include<stdlib.h>

%}

%%
while {return WHILE; }
“(”  {return BRO; }
“)”  {return BRC; }
“{”  {return CUBRO; }
“}”  {return CUBRC; }
“=”  {return EQUAL; }
“;”  {return SEMI; }
“++” {return INCRE;}
“–” {return DECRE;}

[0-9]+ {yylval=*yytext;return NUM;}
[a-zA-Z]+ {yylval=*yytext;return ID;}

%%

int yywrap(void)
{
return 1;
}

ELSE_IF Accepter Bison and Flex

IF.Y

%{

#include <stdio.h>
void yyerror(char *s);

%}

%token IF BRO ELSE BRC CBO CBC SEMI NUM ID ELSEIF RELOP EQUAL

%%

Statement: E4 ELSE CBO E2 CBC {printf(“Accept \n”);}

E4:A
  |H
  |E4 A
 

;

A:ELSEIF BRO E1 BRC CBO E2 CBC
;
 
H:IF BRO E1 BRC CBO E2 CBC

E1:ID EQUAL ID
  |ID RELOP ID
  |ID RELOP NUM
  ;
E2:NUM SEMI
  |ID SEMI
  ;

%%
void yyerror(char *s)
{
        
        {printf(“\n Syntax is Wrong”);}
    
}

int main(void)
{
    yyparse();
        return 0;
}

IF.Flex

%{
    #include “if.tab.h”
    #include<stdlib.h>
    
%}

%%

if {return IF;}

“else if” {return ELSEIF;}

else {return ELSE;}

“(” {return BRO; }

“)” {return BRC; }

“{” {return CBO; }

“}” {return CBC; }

“;” {return SEMI; }

“<” {return RELOP; }

“>” {return RELOP; }

“=<” {return RELOP; }

“=>” {return RELOP; }

“<=” {return RELOP; }

“>=” {return RELOP; }

“==” {return RELOP; }

“=” {return EQUAL;}

“!=” {return RELOP;}

[0-9]+  {yylval=*yytext;return NUM;}

[a-zA-Z]+ {yylval=*yytext;return ID;}

%%

int yywrap(void)

{

  return 1;

}