2012-04-10 25 views
8

Tôi đang làm việc trên Dự án Android về Nhận dạng âm nhạc quang học. Tôi chụp ảnh một bản nhạc thông qua camera di động và tôi cố gắng nhận ra các ghi chú và ký hiệu. Tôi rất quen thuộc với phương pháp luận sau khi tiền xử lý nhưng loại công việc này thường được thực hiện với sự trợ giúp của máy quét. (thay vào đó, tôi phải sử dụng máy ảnh di động)Phát hiện đường dây trên một hình ảnh bản nhạc trong Android

Trực quan, tôi đã sử dụng hough biến đổi đầu tiên để phát hiện staves (dòng nhân viên), sau đó tính toán góc giữa chúng và trục ngang và xoay hình ảnh nhiều như góc. Điều này có thể làm việc theo lý thuyết nhưng hough tìm các đoạn thẳng và góc của các đoạn này không nhất quán. Vì vậy, nó không hoạt động (có thể do ảnh hưởng của phối cảnh)

Sau đó, tôi đã thử nhiều phát hiện cạnh và các thuật toán tìm dòng nhưng không có thuật toán nào hoạt động ổn định. (bao gồm thiết bị dò vòng quay và phân đoạn đường tần số)

Bây giờ tôi đang nghĩ đến một cách tiếp cận mới tương tự như máy quét tài liệu trên Android. Tôi cố gắng chuyển đổi hình ảnh của tôi thành một hình thức như tài liệu được quét. Tôi muốn căn chỉnh hình ảnh của mình với trục ngang và loại bỏ hiệu ứng vì nghiêng và phối cảnh.

Tôi tự hỏi nếu có ai có ý tưởng về cách đạt được "quét tài liệu" này. Hoặc nếu bạn có bất kỳ ý tưởng nào về việc căn chỉnh tài liệu hoặc phát hiện dòng ổn định, nó sẽ hữu ích hơn cho công việc tương lai của tôi. Cảm ơn bạn.

+0

[blog này] (http://gaut.am/making-an-ocr-android-app-using-tesseract/) có thể hoặc không thể hữu ích –

+0

Nếu bạn sẵn sàng sử dụng Java, bạn có thể muốn xem http://audiveris.kenai.com/, một công cụ Nhận dạng Âm nhạc Quang học mã nguồn mở (tiết lộ: Tôi đã đóng góp một thời gian ngắn, một thời gian rất dài trước đây). – btown

+0

@JasonRobinson: Sẽ rất hữu ích cho một dự án OCR nhưng không phải cho dự án OCR mà tôi tin, dù sao cũng cảm ơn bạn. –

Trả lời

3

Bạn có thể chỉ cần đo chiều cao của phần trên cùng hoặc dưới cùng ở bên trái và bên phải của trang tính và tính toán góc từ đó. Khó khăn duy nhất có thể là tìm ra một điểm tốt để đo chiều cao tự động (tức là tìm cột nào để quét theo chiều dọc cho phần cột). Một cách để làm cho nó mạnh mẽ là kiểm tra 6 hoặc nhiều điểm ảnh có các pixel đen liên tiếp được phân tách bởi các vùng màu trắng có chiều rộng gần như không đổi. Khi bạn tìm thấy điều đó, bạn chắc chắn không có ghi chú đi lạc hay biểu tượng nào ném tắt phép đo.

+0

Tôi đã thử một cách tiếp cận rất giống nhau nhưng nó không hoạt động trong nhiều trường hợp vì hai lý do. Đầu tiên là một dòng không phải luôn luôn là một dòng vì ánh sáng, độ phân giải vv Thứ hai, phối cảnh làm cho một hình ảnh nhìn thẳng hàng nhưng thực sự nó không phải là liên kết. –

+0

Bạn không cần phải tìm một dòng thực tế cho mỗi lần, bạn chỉ cần âm mưu các maxima địa phương (có lẽ sau khi lọc trung bình) và xem nếu khoảng thời gian của họ là thường xuyên. Vì có rất nhiều dòng, nên nó khá mạnh mẽ. Tôi không hoàn toàn chắc chắn những gì bạn có nghĩa là do vấn đề quan điểm. – dvhamme

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