Tôi quan tâm đến việc nhận dạng các chữ cái trên bảng Boggle, có thể sử dụng openCV. Các chữ cái có cùng phông chữ nhưng có thể được xoay, do đó việc sử dụng thư viện nhận dạng văn bản chuẩn là một vấn đề. Ngoài ra, M và W có dấu gạch dưới để phân biệt chúng, và Q thực sự là một Qu. Tôi khá tự tin tôi có thể cô lập các chữ cái riêng biệt trong hình ảnh, tôi chỉ tự hỏi làm thế nào để làm phần công nhận.nhận dạng các chữ cái boggle/scrabble từ một hình ảnh
Trả lời
Tùy thuộc vào tốc độ bạn cần. Nếu bạn có thể cô lập các vuông của bức thư và xoay nó để các cạnh của hình vuông chứa bức thư là ngang và dọc sau đó tôi sẽ đề nghị bạn:
- chuyển đổi hình ảnh sang màu đen/trắng (bằng chữ một màu và phần còn lại của cái chết khác
- tạo tập dữ liệu tham chiếu của tất cả các chữ cái trong tất cả bốn hướng có thể (tức là thẳng đứng và xoay 90, 180 và 270 độ)
- sử dụng chức năng khớp mẫu chẳng hạn như cvMatchTemplate để tìm hình ảnh phù hợp nhất từ tập dữ liệu của bạn cho mỗi hình ảnh mới.
Điều này sẽ mất một chút thời gian, vì vậy tối ưu hóa là có thể, nhưng tôi nghĩ rằng nó sẽ giúp bạn có được một kết quả hợp lý. Nếu nhận được chúng theo một định hướng đúng là khó khăn, bạn cũng có thể tạo ra các phiên bản xoay của đầu vào mới của bạn một cách nhanh chóng và khớp với các phiên bản đó vào tập dữ liệu tham chiếu của bạn.
Nếu các chữ cái có quy mô khác nhau sau đó tôi có thể nghĩ đến hai lựa chọn:
- Nếu định hướng không phải là một vấn đề (tức là phát hiện khối Boggle bạn cũng có thể đặt các khối trong định hướng đúng đắn) sau đó bạn có thể sử dụng hộp giới hạn của khu vực có màu chữ như chỉ báo thô của thang đo hình ảnh đến và tỷ lệ có cùng kích thước với hộp giới hạn trên hình ảnh tham chiếu của bạn (điều này có thể khác nhau đối với mỗi hình ảnh tham chiếu)
- Nếu định hướng là một vấn đề sau đó chỉ cần thêm mở rộng như một tham số của không gian tìm kiếm của bạn. Vì vậy, bạn tìm kiếm tất cả các vòng quay (0-360 độ) và tất cả các kích thước hợp lý (bạn có lẽ nên có khả năng đoán phạm vi hợp lý từ những hình ảnh bạn có).
Bạn có thể sử dụng OCR đơn giản như Tesseract. Nó rất dễ sử dụng và khá nhanh. Bạn sẽ phải thực hiện 4 phép quay (như đã đề cập trong câu trả lời của @jilles de wit).
Tôi đã tạo một ứng dụng iOS chỉ thực hiện việc này, dựa trên OpenCV. Nó được gọi là SnapSolve. Tôi đã viết một blog về cách phát hiện hoạt động. Về cơ bản, tôi che phủ tất cả 26x4 chữ cái có thể + xoay trên mỗi hình dạng và xem chữ nào trùng lặp nhiều nhất. Một chút tinh chỉnh cho điều này là làm mịn hình ảnh lớp phủ, để loại bỏ các đồ tạo tác mà các chữ cái gần như trùng lặp nhưng không hoàn toàn.
Tôi đã không xem xét dự án của tôi trong một vài năm nhưng bài viết rất thú vị, cảm ơn. Liên kết đến blog về việc thực hiện nó trong javacsript cũng khá thú vị. – eggbert
- 1. Nhận dạng văn bản từ một hình ảnh trong delphi
- 2. Nhận dạng hình ảnh
- 3. Xcode, iOS - Nhận dạng dòng/hình dạng hình ảnh
- 4. Nhận dạng các chữ cái được nói bởi một người sử dụng java
- 5. Tách các chữ cái từ các số trong một chuỗi
- 6. Nhận dạng hình ảnh trong hình ảnh trong C#
- 7. Nhận dạng hình dạng php trong hình ảnh
- 8. Nhận dạng hình ảnh cho Android/iPhone
- 9. Nhận dạng hình ảnh bằng Python
- 10. Trình đọc màn hình: Làm thế nào để tạo một từ với các thẻ xung quanh các chữ cái của nó được nói dưới dạng một từ duy nhất, chứ không phải là một chuỗi các chữ cái?
- 11. Đọc văn bản từ một hình ảnh
- 12. jQuery xác thực plugin: chỉ chấp nhận các chữ cái?
- 13. iOS - Nhận chiều cao "thực" của một chữ cái
- 14. Nhận dạng hình ảnh và dựng hình 3D
- 15. Phương pháp điển hình để tách các chữ cái được kết nối thành một từ bằng OCR
- 16. Nhận hình ảnh bản đồ từ MKMapView
- 17. Sắp xếp các chuỗi, các chữ cái đầu tiên trước tiên, sau đó các chữ cái bên trong các từ
- 18. Nhận dạng chữ viết tay Java
- 19. Lấy ô theo số nhận dạng chữ cái tham chiếu ô với Apache POI
- 20. Cách cắt hình chữ nhật từ hình ảnh trong android
- 21. Biểu thức chính quy - bắt đầu và kết thúc bằng một chữ cái, chỉ chấp nhận chữ cái, số và _
- 22. Nhận một hình ảnh Mathematica trong Java
- 23. Làm thế nào để tách một chuỗi giữa các chữ cái và chữ số (hoặc giữa các chữ số và chữ cái)?
- 24. "Định dạng hình ảnh không được nhận dạng" tùy thuộc vào màn hình
- 25. Nhận chữ cái đầu tiên của mỗi từ trong một chuỗi, trong Javascript
- 26. Thuật toán để nhóm các từ đảo chữ cái
- 27. Nhận dạng hình dạng phức tạp
- 28. Nhận dạng hình dạng - đếm xoài
- 29. OpenCV tiểu hình ảnh từ một hình ảnh Mat
- 30. Nút iPhone có hình dạng không phải hình chữ nhật?
Điều này có hoạt động với hình ảnh có kích thước/zoom khác nhau không? tức là nếu máy ảnh ở gần hoặc xa hơn gạch? – eggbert
Tôi đã cập nhật câu trả lời cho câu hỏi của bạn. –