Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MooseGesture

A mouse gesture recognition module for Python 2 and 3.

This module is fed a series of XY coordinates (which can come from the mouse or another source) and can recognize when the mouse is moving in one of the eight cardinal/diagonal directions.

These mouse movements can be combined to form "mouse gestures" to perform different commands.

Installation

pip install moosegesture

Quickstart Guide

Pass a path as sequence of (x, y) tuples to getGesture(), which will return a list of directions that the path takes. These are the up, down, left, right, and diagonal directions represented by the following strings:

'U', 'D', 'L', 'R'

'UL', 'UR', 'DL', 'DR'

They are stored in the following constants:

UP, DOWN, LEFT, RIGHT

UPLEFT, UPRIGHT, DOWNLEFT, DOWNRIGHT

Example usage:

>>> import moosegesture
>>> moosegesture.getGesture([(332, 385), (332, 287), (332, 175), (330, 69), (324, 13), (322, 0)])
['U']

MooseGesture can also find the closest matching gesture in a list of gestures, using Levenshtein edit distance:

>>> path  = ['D', 'L', 'R']
>>> gestures = [['D', 'L', 'D'], ['D', 'R', 'UR']]
>>> moosegesture.findClosestMatchingGesture(path, gestures)
['D', 'L', 'D']

The same direction will never appear consecutively, i.e. there will never be a "right-left-left" gesture, only "right-left".

Demo Programs

The repo at https://github.com/asweigart/moosegesture contains a tests/demoGestureApp.py which uses Pygame to display a small window. You can draw gestures in this window by dragging the mouse, and the recognized gesture will appear at the bottom.

The simongesture.py game is a Simon game that make uses of moosegesture. It requires Pygame to play.

About

Python 8-direction mouse gesture recognition library

Resources

License

Releases

No releases published

Packages

No packages published

Languages