A mouse gesture recognition module for Python.
Project description
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file MooseGesture-1.0.2.tar.gz
.
File metadata
- Download URL: MooseGesture-1.0.2.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72dcc56b3a2749e8d72abc77c7d9028222551b3019ac06e08eed9cbd754f2f47 |
|
MD5 | fcb8be09be6dae7d90cc2ea33a61ab81 |
|
BLAKE2b-256 | cd69f72a254e71e071f119fcb1be271c3f466996934bcd3d30a8a3829f4bfefd |