2010-04-01 45 views
7

Chương trình của tôi đang làm việc với tài liệu fax được lưu trữ dưới dạng các bitmap riêng biệt
Tôi tự hỏi liệu có cách nào để phát hiện hướng trang tự động (dọc hoặc ngang) để hiển thị xem trước hình ảnh cho người dùng theo đúng thứ tự (có nghĩa là xoay nếu cần)Cách phát hiện định hướng hình ảnh (văn bản)

Bất kỳ lời khuyên nào được đánh giá cao!

CHỈNH SỬA: Làm rõ:
Khi Faxmachine nhận tài liệu nhiều trang, nó lưu từng trang dưới dạng tệp TIFF riêng biệt.
Ứng dụng của tôi có trình xem được tích hợp hiển thị các tệp đó. Tất cả các file được thu nhỏ sang định dạng A4 và lưu trong TIFF (vì vậy không có sự thay đổi để phát hiện định hướng bởi chiều cao/thông số chiều rộng)
xem của tôi hiển thị hình ảnh ở chế độ dọc theo mặc định

Những gì tôi muốn làm là Automagically phát hiện tình huống khi tài liệu org được in ở chế độ ngang (ví dụ: bảng Excel rộng) thì tôi muốn hiển thị xem trước được xoay cho người dùng cuối để tăng tốc quá trình xem trước

Rõ ràng có 4 hướng fax chân dung/cảnh quan x 2 loại quay.

tôi thậm chí còn giải pháp đơn giản quan tâm đến việc phát hiện khi doc org là phong cảnh hoặc chân dung (Tôi đã nhận thấy hầu hết các tài liệu cảnh quan cần phải được luân chuyển chiều kim đồng hồ)

EDIT2: Idea
Tôi nghĩ rằng nó có thể là một số ý tưởng:
Nếu tôi có thể vẽ các đường ngang và dọc và kiểm tra xem dòng có cắt bất kỳ điểm nào (màu đen) hay không. Sau đó, chúng ta có thể so sánh các loại dòng khác (ngang hoặc dọc) và quyết định của mình về hướng trang.
Bạn nghĩ sao?

+0

Vui lòng làm rõ. Bạn có nghĩa là bạn có một tập hợp các hình ảnh về sự kết hợp giữa các trang văn bản dọc và ngang và bạn muốn phân tích hình ảnh để xác định cách xoay hình để văn bản hiển thị đúng cách? Có lẽ thực sự có 4 hướng có thể, cho rằng các bản gốc có thể đã được quét "lộn ngược". – e100

Trả lời

2

Bạn cần OCR cho điều đó. Rolling OCR của riêng bạn sẽ có một chút khó khăn, nhưng có thể có thư viện hoặc một cái gì đó ra có giá trị xem xét? Ngoài ra, ngay cả với OCR tốt, nó không phải là một giải pháp đáng tin cậy 100%.

+0

Tôi đã theo cách đó. Tôi đã sử dụng Teseract .NET miễn phí OCR lib cho C#. Tài liệu được quay miễn là có tỷ lệ% tốt nhất. – Maciej

2

Tôi tự hỏi nếu có một số thuộc tính của văn bản bạn có thể sử dụng để giúp bạn làm điều này.

Ví dụ dựa trên nháy mắt, có nhiều dòng dọc hơn trong văn bản (l, j, k, m, n v.v.) so với văn bản ngang vì vậy có thể bạn có thể bắt đầu với điều này.

Nhưng ngay cả khi phát hiện những điều này không đơn giản, bạn cần sử dụng một số loại bộ lọc như Sobel hoặc Prewitt. Cả hai đều có phiên bản ngang và dọc, see here để biết thêm thông tin.

Tất nhiên, các đường thẳng đứng/nằm ngang của bảng tính excel sẽ là các cạnh mạnh nhất, do đó bạn phải bỏ qua chúng và chỉ xem văn bản.

Thay thế: Bạn không chỉ cung cấp cho người dùng cách xoay hình ảnh dễ dàng, như mũi tên trong Trình xem ảnh Windows hoặc chỉ hiển thị 4 xem trước hình thu nhỏ mà họ có thể nhấp vào. Bạn có thể cần phải cache 4 phiên bản (nếu bạn đang quay) vì vậy nó nhanh chóng, nhưng chỉ khi tốc độ hóa ra là một vấn đề?

3

Bạn có thể thực hiện Chuyển đổi Fourier nhanh (FFT) để chuyển đổi hình ảnh không gian của bạn thành biểu diễn tần số/góc. Sau đó tìm góc với tần số nổi bật nhất.Nghe có vẻ phức tạp nhưng nó không phải là khó, nó khá hiệu quả, và trong thực tế nó kiểm tra mọi góc có thể cùng một lúc, thay vì là một hack mã hóa cứng chỉ hoạt động cho các góc cụ thể. Tìm kiếm triển khai mẫu với các cụm từ tìm kiếm như Công thức số và FFT.

2

Dưới đây là một bài báo có tựa đề "Combined Script and Page Orientation Estimation using the Tesseract OCR engine" [pdf]

tôi đã không thể tìm thấy một thực hiện công việc của họ, nhưng phương pháp này có vẻ tốt với tôi:

Ý tưởng cơ bản đằng sau cách tiếp cận được đề xuất rất đơn giản.

Một lớp hình được đào tạo về các ký tự (lớp) từ tất cả các tập lệnh quan tâm. Vào thời gian chạy, phân loại được chạy độc lập trên mỗi thành phần được kết nối (CC) trong ảnh và quá trình được lặp lại sau khi xoay từng CC thành ba hướng ứng cử khác (90 °, 180 ° và 270 ° từ hướng đầu vào).

Thuật toán theo dõi số lượng ký tự ước tính trong mỗi tập lệnh cho một hướng nhất định và điểm số con tích lũy được phân loại trên tất cả các định hướng ứng cử viên. Ước tính định hướng trang được chọn là điểm có điểm con tích lũy cao nhất và ước tính tập lệnh được chọn là số có số ký tự cao nhất trong tập lệnh đó để có ước tính định hướng tốt nhất.

+0

Tương tự như Catdirt – Maciej

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