2012-05-01 13 views
6

Vorrei fare un'altra domanda relativa a How to remove convexity defects in a Sudoku square?Rilevamento Sudoku quadrato in un'immagine

ho implementato un Sudoku Solver in OpenCV-Python e funzionare abbastanza bene. Ma in questo momento, ho fatto un'ipotesi che semplificherà il mio problema.

Assunzione è: Sudoku boundary(square) is the biggest blob in the input image

Es:

enter image description here

Il blocco rosso è il quadrato rilevato. Puoi vedere che copre la maggior parte dell'immagine.

Il problema:

problema non è altro che il presupposto. 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.

Ad esempio, prendere questo image. (Non voglio caricare immagine originale qui, è abbastanza grande, anche io voglio caricare il risultato in ogni caso)

Ho provato diversi seguenti metodi per trovare quadrato sudoku in questa immagine:

1) Find the biggest blob

Poi ho ottenuto la regione di colore rosso. Method Failed.

enter image description here

(immagine viene ridimensionata da immagine originale per ridurre le dimensioni)

2) Find only square regions

si può vedere un sacco di candidati ci sono, soprattutto KING CROSSWORD che è tutto modo simile al Sudoku . Method again fails

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

Domanda:

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

UPDATE: Dopo aver letto alcune risposte e commenti, penso che dovrei dare un aggiornamento. Guardate l'immagine qui sotto:

enter image description here

Questa immagine ha un sudoku domanda e risposta precedente di sudoku. Entrambi sono uguali. Penso che la ricerca di sottoblocchi o test OCR non funzionerà qui.

+0

Un metodo completamente diverso e forse inutile, ma non si potrebbe spingerlo attraverso un sistema OCR, e cercare un suggerimento testuale dove guardare prima, e poi andare da lì? – Nanne

+0

Io non la penso così.Controlla l'aggiornamento nella domanda. –

+0

Beh, l'ho dato come commento perché non ero sicuro :) .. Tuttavia, penso che sia necessario utilizzare più metodi. Uno potrebbe essere quello di trovare l'area generale del sudoku con l'OCR (in modo da non ottenere i cartoni animati), e quindi trovare il più grande blob/quadrato? qualcosa del genere. Basta pensare ad alta voce;) – Nanne

risposta

5

Perché non controllare ogni quadrato grande/blob? Solo quelli con 1) 9X9 sottosuperfici 2) Numeri in alcuni sottosquadri 3) Nessun sottotitolo oscurato è sudoku.

+0

Aggiornata la domanda. –

+0

e 4) contenenti alcuni quadrati vuoti? – Chris

+2

Penso che il punto @ Crisi e il tipo di supporto è perché non provare tutto ciò che POTREBBE essere un sudoku e attraversare tutti fino a determinare che non è un sudoku? Non hai bisogno di inventare un proiettile magico che raccolga il sudoku e solo il sudoku dalla pagina. – mwengler