Card recognition and organization based on opencv
This is a set of utilities to recognize and extract card images from a video feed, and then recognize those images against a known database.
Dependencies and Setup
python 2.7, numpy, Flask, SQLAlchemy, Elixir
sudo apt-get install python-dev sudo pip install -r requirements.txt
OpenCV 2.3.1-7
sudo apt-get install python-opencv
- MTG Set Card Images (GathererDownloader Instructions)
- webcam
- white printer paper
Configure
db_file="inventory.sqlite3"
cards_file="cards.xml"
card listing obtained from GathererDownloader
basic_magic_set_dir="cards/"
card images obtained from GathererDownloader
Running
1. Scan
python -m utils.run_scan
Key | Function |
---|---|
middle mouse wheel | delete scan |
space | rescan image |
r | rescan background |
escape | finish scanning |
2. Match
Requires an image set to match against (GathererDownloader Instructions)
python -m utils.run_match
3. Verify
Verification allows you to manually label any cards the matching process could not recognize, or was uncertain about whether its recognition was correct.
python website.py
http://localhost:5000/verify_scans
Scanning Notes
It also helps to have lighting coming from both sides, to reduce the effect of slightly curved cards throwing shadows that alter their rectangular shape in the camera's view.
Licensing
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.