Tôi đang cố gắng, vì mục đích học tập của riêng tôi, để phát triển việc thực hiện một thuật toán liệt kê các cuốn sách, đưa ra một hình ảnh của giá sách như sau:
Bước đầu tiên là cắt hình ảnh thành từng cuốn sách.
Thuật toán của tôi, trong Mathicala , là:
img = ColorConvert[Import["http://i.stack.imgur.com/IaLQk.jpg"], "GrayScale"]
- làm một phát hiện cạnh cơ bản &
xóa văn bản và cố gắng giữ các dòng dài
edge = DeleteSmallComponents[EdgeDetect[img, 3],Last[ImageDimensions[img]]/5]
sau đó loại bỏ các đường ngang không mong muốn
lines = Sort[ImageLines[img5] /. {{0., _}, {_, _}} -> Sequence[]] Show[img, Graphics[{Thick, Orange, Line /@ lines}]]
Kết quả, mặc dù, là ít hơn tuyệt vời:
Câu hỏi của tôi là:
- Làm thế nào tôi có thể cải thiện điều này để mang lại kết quả tốt hơn?
- Có cách nào thông minh hơn để làm điều này?
- Tôi nên xử lý hình ảnh như thế nào để tăng độ chính xác ở giai đoạn OCR (sau)?
- Làm thế nào để sử dụng thông tin màu sắc để cải thiện phân khúc?