2010-07-27 16 views
8

Có bất kỳ động cơ OCR nào được thiết kế để xác định văn bản trong hình ảnh được chụp màn hình thay vì văn bản được quét không? Tôi có một dự án mà tôi cần truy xuất và xác định văn bản trong một ứng dụng, và không có công cụ OCR nào mà tôi đã thử cho đến nay đã có công bằng với ảnh chụp màn hình.Động cơ OCR được thiết kế để đọc màn hình

Lý tưởng nhất là động cơ sẽ hoạt động tốt với màu sắc và có tạp âm nền, mặc dù tôi có thể thực hiện một số phụ cấp nếu không có thứ gì giống như sẵn có.

Nó sẽ cần phải tương thích với .NET; hoặc được viết bằng .NET hoặc có API có thể gọi .NET.

+0

Sự khác nhau giữa văn bản được quét và ảnh chụp màn hình là gì? –

+3

Văn bản của ảnh chụp màn hình được đảm bảo trên các đường thẳng, nhưng cũng có màu, với nhiễu nền màu. Tôi đang tìm hiểu xem có một công cụ OCR được thiết kế đặc biệt để đọc từ các ảnh chụp màn hình hay không. –

Trả lời

4

Thông thường kỹ thuật OCR được điều chỉnh để hoạt động với văn bản được quét, có kích thước tối thiểu 200 dpi, tuy nhiên, 300 dpi được khuyến nghị cho chất lượng OCR đáng tin cậy. Vì vậy, bạn cần phải đặt một số nỗ lực vào các thiết lập tinh chỉnh và tất cả mọi thứ để làm cho nó hoạt động trên văn bản màn hình, mà thường được coi là một cái gì đó gần 96 dpi.

ABBYY có màn hình chụp phần mềm OCR: http://www.abbyy.com/screenshot_reader/ chứng minh rằng công nghệ của nó có thể hoạt động tốt trong điều kiện này. Tôi sử dụng nó, nó chỉ hoạt động. Vì vậy, bạn có thể muốn liên hệ với ABBYY cho OCR SDK: http://www.abbyy.com/ocr_sdk/ (có thể được sử dụng từ .NET)

Nó không phải là rẻ, nhưng nó hoạt động. Tuyên bố từ chối trách nhiệm: Tôi làm việc cho ABBYY

+0

Cảm ơn, tôi sẽ kiểm tra. =) –

+0

Điều này phù hợp cho hình ảnh dpi thấp hơn (ví dụ: 96dpi) - tôi mở hình ảnh sắp xếp này trong trình xem ảnh của cửa sổ và trình đọc ảnh chụp màn hình đã sử dụng. Nhưng hình ảnh của tôi có độ phân giải 96dpi và chiều cao là 20000 vì vậy nó rất dài trong trường hợp này là có bất kỳ tự động hóa như trình đọc ảnh chụp màn hình thay vì đọc ảnh chụp màn hình và đi xuống và một lần nữa ảnh chụp màn hình .. – SIslam

5

Tôi đã tìm thấy Tesseract OCR là khá vững chắc cho một dự án nguồn mở. Tôi đã tìm thấy rằng nó thậm chí có thể đọc và giải mã các captchas đơn giản, như Megaupload. Tôi nghĩ rằng với một chút tinh chỉnh này có thể làm việc khá tốt.

Sự đau đớn duy nhất là nó chỉ chấp nhận hình ảnh TIFF không nén, có thể gây phiền nhiễu.

EDIT: Philip Daubmeier đã tìm thấy tích hợp .NET, nhưng dưới đây là mã để chuyển đổi một Bitmap thành TIFF không nén.

private void ConvertBitmapToTIF(Bitmap convert) 
{ 
    ImageCodecInfo codecInfo = GetEncoderInfo("image/tiff"); 
    System.Drawing.Imaging.Encoder encodeCom = System.Drawing.Imaging.Encoder.Compression; 
    System.Drawing.Imaging.Encoder encodeBPP = System.Drawing.Imaging.Encoder.ColorDepth; 

    EncoderParameters parms = new EncoderParameters(2); 
    EncoderParameter param0 = new EncoderParameter(encodeCom, (long)EncoderValue.CompressionNone); 
    EncoderParameter param1 = new EncoderParameter(encodeBPP, 8L); 
    parms.Param[0] = param0; 
    parms.Param[1] = param1; 

    convert.Save("output.tif", codecInfo, parms); 
} 

Điều này lưu vào tệp, nhưng phương pháp Bitmap.Save cũng có thể ghi vào luồng.

+0

Tôi tích hợp nó vào một dự án .NET. thực thi và mã để chuyển đổi thành TIFF không nén. Tôi có thể đăng bài ở đây nếu nó có ích. – Nate

+0

sẽ tuyệt vời! –

+0

Chỉ tìm thấy đã có tích hợp .net: http://www.pixel-technology.com/freeware/tessnet2/ –

1

Về cơ bản, bạn đang tìm kiếm các nhà nghiên cứu khác nhau đã thử, một số có thành công.

Một cách tiếp cận khác là sử dụng các thuật toán làm mịn để nội suy thu thập 96 DPI và chuyển đổi chúng thành 300 DPI (ví dụ: photoshop), sau đó sử dụng các công cụ OCR chuẩn.

+0

Tôi không tìm kiếm trình giải mã CAPTCHA - không có văn bản nào bị xáo trộn theo cách đó - nhưng điều này sẽ giúp ích. =) –

0

Sử dụng câu trả lời đầu tiên (phần mềm OCR) và để chụp màn hình, bạn có thể gửi một ký tự PRNTSCRN (printscreen) và sau đó CHUYỂN ĐỔI nội dung của khay nhớ tạm (bmp) thành một tiff.

hy vọng điều này giúp bạn hiểu thêm một chút về liên doanh của bạn