2012-05-01 24 views
6

me gustaría hacer otra pregunta relacionada con How to remove convexity defects in a Sudoku square?Sudoku Square en una imagen

he implementado un Sudoku Solver en OpenCV-Python y que funciona bastante bien. Pero en este momento, hice una suposición que simplificará mi problema.

asunción es: Sudoku boundary(square) is the biggest blob in the input image

Ej:

enter image description here

El bloque rojo es el cuadrado detectado. Puedes ver que cubre la mayor parte de la imagen.

El problema:

problema no es más que la suposición. If sudoku square has another square around it, method fails. Or if the image has another bigger blob than the sudoku square, again method fails.

Por ejemplo, tome image. (No quiero cargar la imagen original aquí, es bastante grande, también quiero cargar el resultado de todos modos)

He probado varios métodos siguientes para encontrar plaza sudoku en esta imagen:

1) Find the biggest blob

Luego obtuve la región de color rojo. Method Failed.

enter image description here

(imagen cambia de tamaño de la imagen original para reducir el tamaño)

2) Find only square regions

se puede ver una gran cantidad de candidatos hay, sobre todo KING CROSSWORD que es todo de forma similar a Sudoku . Method again fails

In short, this image has everything, to fail me.

Pregunta:

How to detect a sudoku square in an image, especially in the test image i gave? Is there any better algorithm for this?

ACTUALIZACIÓN: Después de leer algunas respuestas y comentarios, creo que debería dar una actualización. Mira la imagen de abajo:

enter image description here

Esta imagen tiene un sudoku de preguntas y respuestas de sudoku anterior. Ambos son iguales. Creo que buscar subbloques o pruebas OCR no funcionará aquí.

+0

Un método completamente diferente y tal vez inútil, ¿pero no podría empujarlo a través de un sistema de OCR, y buscar una pista textual donde mirar primero, y luego ir desde allí? – Nanne

+0

No lo creo.Verifique la actualización en la pregunta. –

+0

Bueno, lo hice como un comentario porque no estaba seguro :) .. Aún así, creo que debes usar varios métodos. Uno podría ser encontrar el área general del sudoku mediante OCR (para que no se obtengan las caricaturas), y luego encontrar el blob/cuadrado más grande. algo como eso. Solo pensando en voz alta;) – Nanne

Respuesta

5

¿Por qué no comprobar cada cuadrado/burbuja grande? Solo los que tienen 1) 9X9 subsquares 2) Números en algunas de las subscripciones 3) No hay subcamas sudoku.

+0

Actualizó la pregunta. –

+0

y 4) que contiene algunos cuadrados en blanco? – Chris

+2

Creo que el punto de apoyo de @Chris y yo es por qué no probar todo lo que PUEDE ser un sudoku y pasar por todos hasta determinar que no es un sudoku. No es necesario que encuentres una bala mágica que recoja el sudoku y solo el sudoku de la página. – mwengler