All Projects → cabustillo13 → Resolvedor-de-Sudoku

cabustillo13 / Resolvedor-de-Sudoku

Licence: Apache-2.0 license
Resolver Sudoku de genina.com

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Resolvedor-de-Sudoku

python-sudoku-generator-solver
Python based sudoku generator that can create unique Sudoku board based on 4 difficulty levels. This code also includes a brute force sudoku solver that is capable of solving even the most difficult sudoku puzzles!
Stars: ✭ 58 (+241.18%)
Mutual labels:  sudoku-solver, sudoku
rps-cv
A Rock-Paper-Scissors game using computer vision and machine learning on Raspberry Pi
Stars: ✭ 102 (+500%)
Mutual labels:  image-classification, opencv-python
neuro-symbolic-sudoku-solver
⚙️ Solving sudoku using Deep Reinforcement learning in combination with powerful symbolic representations.
Stars: ✭ 60 (+252.94%)
Mutual labels:  sudoku-solver, sudoku
PlayerDetection
Player detection and ball detection in football matches using image processing(opencv).
Stars: ✭ 50 (+194.12%)
Mutual labels:  image-classification, opencv-python
sudoku-solver
A simple sudoku solver
Stars: ✭ 16 (-5.88%)
Mutual labels:  sudoku-solver, sudoku
Sudoku-Solver
🎯 This Python-based Sudoku Solver utilizes the PyGame Library and Backtracking Algorithm to visualize and solve Sudoku puzzles efficiently. With its intuitive interface, users can input and interact with the Sudoku board, allowing for a seamless solving experience.
Stars: ✭ 51 (+200%)
Mutual labels:  sudoku-solver, sudoku
sudoku
A very fast Java Sudoku library implementation along with a command line client
Stars: ✭ 15 (-11.76%)
Mutual labels:  sudoku-solver, sudoku
CV
本仓库将使用Pytorch框架实现经典的图像分类网络、目标检测网络、图像分割网络,图像生成网络等,并会持续更新!!!
Stars: ✭ 72 (+323.53%)
Mutual labels:  image-classification
udacity-cvnd-projects
My solutions to the projects assigned for the Udacity Computer Vision Nanodegree
Stars: ✭ 36 (+111.76%)
Mutual labels:  opencv-python
Maix-LogoClassifier
A simple logo classifier developed using Maixduino framework and PlatfomIO, to run on K210 MCU on Sipeed's Maix dev board.
Stars: ✭ 25 (+47.06%)
Mutual labels:  image-classification
tensorflow-classification
A unified program to check predictions of different convolutional neural networks for image classification.
Stars: ✭ 68 (+300%)
Mutual labels:  image-classification
FaceRecog
Realtime Facial recognition system using Siamese neural network
Stars: ✭ 47 (+176.47%)
Mutual labels:  opencv-python
Custom-CNN-based-Image-Classification-in-PyTorch
No description or website provided.
Stars: ✭ 41 (+141.18%)
Mutual labels:  image-classification
Face-Recognition-Attendance-System
A simple python script that recognises faces and mark attendance for the recognised faces in an excel sheet.
Stars: ✭ 57 (+235.29%)
Mutual labels:  opencv-python
Udacity
This repo includes all the projects I have finished in the Udacity Nanodegree programs
Stars: ✭ 57 (+235.29%)
Mutual labels:  sudoku-solver
memento
Organize your meme image cluster in a better format using OCR from the meme to sort them using tesseract along with editing memes by segmenting them using OpenCV within a directory
Stars: ✭ 70 (+311.76%)
Mutual labels:  image-classification
awesome-computer-vision-models
A list of popular deep learning models related to classification, segmentation and detection problems
Stars: ✭ 419 (+2364.71%)
Mutual labels:  image-classification
catacomb
The simplest machine learning library for launching UIs, running evaluations, and comparing model performance.
Stars: ✭ 13 (-23.53%)
Mutual labels:  image-classification
Parametric-Contrastive-Learning
Parametric Contrastive Learning (ICCV2021)
Stars: ✭ 155 (+811.76%)
Mutual labels:  image-classification
computer-vision
Notebook series on interesting topics in computer vision
Stars: ✭ 17 (+0%)
Mutual labels:  opencv-python

Resolvedor-de-Sudoku

Este código fue publicado en: https://medium.com/@carlosbustillo/solve-sudoku-9x9-with-computer-vision-and-a-constraint-satisfaction-algorithm-in-python-7bb27769c1eb

See English version of this project: Ver

Programa en python 2.7 para resolver un sudoku de la app para Android "Sudoku" de genina.com. Se toma un screenshot del juego (se obtiene una imagen de 720x1280), luego se extrae información útil a partir de visión artificial y posteriormente se analiza con un algoritmo de satisfacción de restricciones con backtracking.

Librerías utilizadas

  • cv2
  • numpy
  • matplotlib
  • skimage
  • mahotas

¿Cómo funciona?

1) Run Preprocesamiento.py

Lo que hace es extraer cada casilla del sudoku de manera individual y los guarda de manera secuencial como photo#.png (donde # va de 0 a 80). Se obtienen imágenes de 80x75

python Preprocesamiento.py

2) Run Transformacion.py

Lo que hace es recortar los bordes de cada casilla, por si ha quedado algún borde negro que pueda inferir en nuestro análisis. Se obtienen imágenes de 56x51

python Transformacion.py

3) Run Main.py

Lo que hace es analizar que número se encuentra en la casilla. Para este caso se utiliza el algoritmo de Canny para determinar si hay algún número o es una casilla vacía. Luego a través de algoritmo KNN se determina que número se encuentra en la casilla. Para la extracción de características se utilizo los momentos de Hu: 1 y 2, filtro gaussiano para la filtración y thresholding no supervisada.

python Main.py

4) Run Resolvedor.py

Lo que hace es resolver el sudoku. Se presenta un algoritmo de satisfacción de restricciones con backtracking. Para esta etapa tome como referencia este repositorio: https://github.com/jorditorresBCN/Sudoku

python Resolvedor.py

5) Run Interfaz.py

Mejora la forma en que se visualiza la solución respecto a la screenshot original.

python Interfaz.py

Run programa entero en bash

Ejecute el script play.sh en su consola, para ejecutar en un solo paso todo el programa si lo desea. Depende de la consola que se tiene, la forma que se ejecuta. En mi consola lo ejecuto como:

sh ./play.sh

Otros programas:

6) Funciones.py

Contiene todas las funciones que se utilizan para preprocesamiento y transformación de la imagen.

7) Rendimiento.py

Se plantea un algoritmo KNN y KMeans y se evaluan todas las imágenes de las carpeta Test, y así determinar su rendimiento del porcentaje de predicciones. AL final se eligíó KNN porque presenta un rendimiento mayor.

python Rendimiento.py

8) vector.txt

Contiene todos los elementos extraídos del screenshot (donde se recorrio las casillas de izquierda a derecha, de arriba hacia abajo). Según Rendimiento.py, el algoritmo KNN presento un rendimiento del 97% respecto a todas las imágenes analizadas en el Test. En caso, de algún error en el reconocimiento de los números existe la opción de cambiar manualmente una predicción de la casilla en el vector.txt.

9) imagen.txt

Contiene el path de la imagen que se va a analizar.

10) Solucion.npy

Es un diccionario que contiene la solución del sudoku.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].