Project Website Project Poster Project Video
This program utilizes the capibilities of the OpenCV library to help the user fold a piece of origami. There are three main ways that the user can choose to engage with the program. The first is for the instructions to be displayed in the upper left hand corner of the frame of the webcam's footage. The second is for the instructions to be projected onto the paper (as long as it is parellel to the table). The last (which is still a bit experimental) is for the instructions to be projected onto the paper regardless of its orientation to the camera. Each of these modes requires the user to push a key for the next step to be projected/displayed.
The authors of this program are Kawin Nikomborirak, Mark Goldwater, and Sidd Garimella. You can read more about them on the project website
To obtain the following dependencies, simply run pip install -r REQUIREMENTS.txt
- OpenCV 3
- Numpy 1.14.2
- PyQt5
- pygame
- pyttsx3
To run this software, execute main.py by typing ./main.py
in the cv-assisted-origami directory, and you should
be presented with the following GUI.
Before running the program, it is necessary to set up an external webcam so that it faces downward at a table. This is where all the folding will take place.
Modes:
-
Unassisted: Minimum Viability
To begin, execute the fold instructions as they are displayed on-screen. Confirm fold completion and repeat until the final instruction is reached.
-
Assisted
To begin receiving valid webcam input, find a surface that contrasts highly with the paper being folded, and position the webcam above it. Starting from the first instruction, continue folding the paper as instructions appear on-screen.
-
Augmented: Stretch
Follow the instructions described in (2), but fold across the line that is projected over the paper on-screen. Continue folding over new lines as they appear on the paper until lines are no longer visible.
Check out our website for implementation details
This repository can be easily forked and contributed to on Github. To suggest new changes, please submit a pull request.
To report any bugs/issues, open a new issue under the repository.