2012-05-01 36 views
6

Tôi muốn hỏi một câu hỏi khác liên quan đến How to remove convexity defects in a Sudoku square?Phát hiện Sudoku Square ở một hình ảnh

Tôi thực hiện một Sudoku Solver trong OpenCV-Python và nó hoạt động khá tốt. Nhưng tại thời điểm này, tôi đã đưa ra một giả định sẽ đơn giản hóa vấn đề của tôi.

Assumption là: Sudoku boundary(square) is the biggest blob in the input image

Ví dụ:

enter image description here

Khối màu đỏ là hình vuông phát hiện. Bạn có thể thấy nó bao gồm phần chính của hình ảnh.

Vấn đề:

Vấn đề là gì, nhưng giả định. 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.

Ví dụ: hãy lấy số image này. (Tôi không muốn tải lên hình ảnh ban đầu ở đây, nó là khá lớn, còn tôi muốn tải lên kết quả anyway)

Tôi đã thử nhiều phương pháp sau đây để tìm vuông sudoku trong hình ảnh này:

1) Find the biggest blob

Sau đó, tôi có vùng màu đỏ. Method Failed.

enter image description here

(ảnh thay đổi kích cỡ từ ảnh gốc để giảm kích thước)

2) Find only square regions

Bạn có thể thấy rất nhiều ứng cử viên đang có, đặc biệt là KING CROSSWORD đó là tất cả các cách tương tự như Sudoku . Method again fails

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

Câu hỏi:

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

UPDATE: Sau khi đọc một số câu trả lời và ý kiến, tôi nghĩ rằng tôi nên đưa ra một bản cập nhật. Nhìn vào hình ảnh dưới đây:

enter image description here

Hình ảnh này có một sudoku câu hỏi và câu trả lời sudoku trước. Cả hai đều giống nhau. Tôi nghĩ rằng việc tìm kiếm các khối phụ hoặc kiểm tra OCR sẽ không hoạt động ở đây.

+0

Một phương pháp hoàn toàn khác và có thể vô dụng, nhưng bạn không thể đẩy nó qua hệ thống OCR, và tìm kiếm gợi ý văn bản ở đâu trước tiên, sau đó đi từ đó? – Nanne

+0

Tôi không nghĩ vậy.Kiểm tra cập nhật trong câu hỏi. –

+0

Vâng, tôi đã cung cấp cho nó như là một bình luận bởi vì tôi đã không chắc chắn :) .. Tuy nhiên, tôi nghĩ rằng bạn cần phải sử dụng nhiều phương pháp. Người ta có thể tìm thấy khu vực chung của sudoku bởi OCR (vì vậy bạn không nhận được các phim hoạt hình), và sau đó tìm blob/square lớn nhất? một cái gì đó như thế. Chỉ cần suy nghĩ to;) – Nanne

Trả lời

5

Tại sao không kiểm tra mọi hình vuông/hình vuông lớn? Chỉ những người có số 1) 9X9 số phụ 2) Số trong một số phụ cấp 3) Không có các truy vấn bị bôi đen là sudoku.

+0

Đã cập nhật câu hỏi. –

+0

và 4) Chứa một số ô trống? – Chris

+2

Tôi nghĩ rằng điểm @Chris và tôi sắp xếp hỗ trợ là lý do tại sao không thử tất cả mọi thứ mà MIGHT là một sudoku và từng bước một cho đến khi xác định nó không phải là một sudoku? Bạn không cần phải tìm ra một viên đạn ma thuật nào nhặt được sudoku và chỉ có sudoku từ trang. – mwengler

Các vấn đề liên quan