Maze_solver provides a relatively quick computer vision solution to most mazes.
Maze_solver reads in images of mazes, performs thresholding and thinning, and then converts the remaining "on" pixels to a network. A simple keyboard UI allows the user to update the starting and ending points. The maze is solved using a simple dijkstra algorithm.
python -m venv venv
pip install -r requirements.in
source venv/bin/activatesrc/maze_solver.py| Key | Result |
|---|---|
| s | Move starting point left |
| f | Move starting point right |
| e | Move starting point up |
| d | Move starting point down |
| j | Move ending point left |
| l | Move ending point right |
| i | Move ending point up |
| k | Move ending point down |
| space | Accept start and end points and solve. |
| escape | Exit |
The next steps in this project are to
- Add a CLI to allow user to run on their own mazes
- Save the name of the file and the starting and ending points in a cache file.
- Allow the user to use a camera instead of an image.
- Allow the user to use the mouse to specify starting and ending positions
- Allow the user to display thinned image
- Handle color mazes - thresholding and thinning
Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
John Lee Cooper
john.lee.cooper@gatech.edu

