2012-03-09 9 views
13

Làm thế nào để đại diện:Tesseract không nhận ra nhân vật đơn

  1. Tạo hình ảnh mới với sơn (bất kỳ kích thước)
  2. Thêm chữ A để hình ảnh này
  3. Cố gắng nhận ra -> Tesseract sẽ không tìm thấy bất kỳ chữ
  4. Sao chép-dán lá thư này 5-6 lần để hình ảnh này
  5. Cố gắng nhận ra -> Tesseract sẽ tìm thấy tất cả các chữ

Tại sao?

Trả lời

15

Bạn phải đặt "chế độ phân đoạn trang" thành "char đơn".

Ví dụ, trong Android, bạn làm như sau:

api.setPageSegMode(TessBaseAPI.pageSegMode.PSM_SINGLE_CHAR); 
+0

Cảm ơn! Đặt 'PageSegMode.SingleChar' đã khắc phục sự cố. –

+2

'api.SetPageSegMode (tesseract :: PSM_SINGLE_CHAR);' cho người dùng C++;) – TimZaman

7

Bạn đã thấy điều này chưa?

https://code.google.com/p/tesseract-ocr/issues/detail?id=581

Danh sách lỗi cho thấy đây là "không còn là vấn đề" nữa.

  • Đảm bảo có hình ảnh có độ phân giải cao.
  • Nếu bạn đang thay đổi kích thước hình ảnh, hãy chắc chắn để giữ một DPI cao và không thay đổi kích thước quá nhỏ
  • Hãy chắc chắn để train your tesseract system
  • sử dụng mã baseApi.setVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); trước init Tesseract
  • Ngoài ra, bạn có thể nhìn vào which font to use with OCR
+0

thấy câu trả lời khác cho các giải pháp đúng ... – Nikko

9

Bạn cần đặt chế độ phân đoạn trang của Tesseract thành "ký tự đơn".

+1

tôi quan tâm này, tôi có thể hỏi bạn thế nào điều này được thực hiện? – wlf

+3

Vâng, nó phụ thuộc hoàn toàn vào cách bạn đang sử dụng tesseract. Nếu bạn đang gọi nó từ trình bao, bạn sẽ nói 'tesseract $ image $ outbase -psm 10'. -psm đặt chế độ phân đoạn trang và chế độ 10 là cho các ký tự đơn. Đó là tất cả trong trang người đàn ông. –