SolveSudoku
SolveSudoku copied to clipboard
Extract and solve sudoku from an image using Computer Vision and Deep Learning
SolveSudoku
SolveSudoku extract and solve sudoku from image. It uses a collection of image processing techniques and Convolution Neural Network for training and recognition of characters. CNN is trained on MNIST dataset to detect digits.
Blog
Checkout the articles on SolveSudoku on Medium.com
Sudoku Solver using OpenCV and DL — Part 1
Sudoku Solver using OpenCV and DL — Part 2
Getting Started
How to use
git clone https://github.com/aakashjhawar/SolveSudoku.git
cd SolveSudoku
python3 sudoku.py <path/to/input_image>
Prerequisites
- Python 3.5
- OpenCV
sudo apt-get install python-opencv
Procedure
- Image preprocessing (Thresholding).
- Find the largest contour (sudoku square).
- Get the cordinates of largest contour.
- Crop the image.
- Perform Warp perspective on image
- Extract each cells from the image by slicing the sudoku grid.
- Extract the largest component in the sudoku image (number).
- Remove noise in block.
- Send the number to pre trained Digit Recogition model.
- Send the grid to Sudoku Solver to perform the final step.
Working
Input image of Sudoku-

Image of Sudoku after thresholding-

Contour corners of Sudoku-

Warp Image-

Final output of ExtractSudoku-

Extracted grid-

Solved grid-
