2010-01-13 5 views
12

Tôi đang sử dụng trình bao bọc tessnet2 cho Tesseract 2.04 Nguồn trên windows XP, đã định cấu hình nó để hoạt động với x86.tessnet2 không tải được

TessarctTest chức năng chính của dự án bao gồm:

 Bitmap bmp = new Bitmap(@"C:\temp\New Folder\dotnet\eurotext.tif"); 
     tessnet2.Tesseract ocr = new tessnet2.Tesseract(); 
     // ocr.SetVariable("tessedit_char_whitelist", ""); 
     ocr.Init(@"C:\temp\tessdata", "eng", false); 
     // List<tessnet2.Word> r1 = ocr.DoOCR(bmp, new Rectangle(792, 247, 130, 54)); 
     List<tessnet2.Word> r1 = ocr.DoOCR(bmp, Rectangle.Empty); 
     int lc = tessnet2.Tesseract.LineCount(r1); 

khi tôi cố gắng để chạy chương trình nó bị treo trên dòng sau bên trong ocr.Init

int result = m_myTessBaseAPIInstance->InitWithLanguage((char *)_tessdata.ToPointer(), NULL, (char *)_lang.ToPointer(), NULL, numericMode, 0, NULL); 

Bất kỳ ai có một ý tưởng?

Đánh giá cao!

+0

là ocr lớp một wrapper cho mã DLL này trông C/C++ với tôi? Nếu vậy, thì các tham số phương thức của trình bao bọc Init có khớp với các tham số của hàm InitWithLanguage không? – t0mm13b

+0

Nhân tiện, bạn có thể cung cấp thêm một chút thông tin cho chúng tôi không? Gợi ý, manh mối ân cần chấp nhận ... – t0mm13b

+0

khi tôi cố gắng phá vỡ bên trong "InitWithLanguage" tôi không thể ... tôi nhận được thông báo: "điểm ngắt sẽ không bị trúng. Không có mã thực thi nào được liên kết với dòng này. Nguyên nhân có thể bao gồm: biên dịch có điều kiện hoặc tối ưu hóa trình biên dịch. " – Jack

Trả lời

3

Dự án + Thuộc tính, tab Gỡ lỗi, cuộn xuống, chọn hộp kiểm "Bật gỡ lỗi mã không được quản lý". Bây giờ bạn có thể thiết lập một điểm ngắt và gỡ lỗi nó.


Nếu IDE của bạn không hỗ trợ gỡ lỗi chế độ hỗn hợp, bạn có thể đính kèm trình gỡ lỗi sử dụng kỹ thuật được nêu trong this post.

+0

@nobugz: Đó là một điều rất quan trọng cần đề cập và thường bị bỏ qua. +1 từ tôi .. :) – t0mm13b

+0

không có nó dưới phiên bản tiêu chuẩn 2008 2008 ... – Jack

1

Đảm bảo thư mục tessdata (C: \ temp \ tessdata) chứa các tệp dữ liệu ngôn ngữ tiếng Anh. Các tệp là: eng.DangAmbigs, eng.freq-dawg, eng.inttemp, eng.normproto, eng.pffmtable, eng.unicharset, eng.user-words, eng.word-dawg. tải xuống các tệp từ tesseract downloads. Tệp cần tải xuống là tesseract-2.00.eng.tar.gz.

14

Đối với những người cố gắng sử dụng cụm Tessnet2 cho động cơ Tesseract OCR trong C# và người đang gặp sự cố của phương pháp Tesseract.Init() khiến ứng dụng của bạn gặp sự cố - tôi đã tìm thấy nguyên nhân có thể xảy ra.

Đầu tiên, tôi giả sử bạn có các tập tin như sau:

bin\Debug\MyDotNetApp.exe 
bin\Debug\tessdata\eng.DangAmbigs 
bin\Debug\tessdata\eng.freq-dawg 
bin\Debug\tessdata\eng.inttemp 
bin\Debug\tessdata\eng.pffmtable 
bin\Debug\tessdata\eng.unicharset 
bin\Debug\tessdata\eng.user-words 
bin\Debug\tessdata\eeng.word-dawg 

Và đang sử dụng này cho việc khởi tạo:

using (var ocr = new tessnet2.Tesseract()) 
{ 
    ocr.Init(null, "eng", false); 
    ... 
} 

Về lý thuyết mà nên làm việc. Đối với tôi nó đã làm việc - nhưng sau đó nó không đột ngột ... mặc dù tôi không thay đổi bất cứ điều gì có thể ảnh hưởng đến nó.

Đối với tôi bản sửa lỗi là tìm kiếm thông qua sổ đăng ký (sử dụng regedit) và xóa tất cả các tham chiếu đến tesseract. Có một số mục đáng ngờ mà tôi nghĩ có thể đã được tạo ra khi tôi cài đặt trình cài đặt Tesseract 3.00 (tesseract-ocr-setup-3.00.exe).

Khi tôi xóa các mục nhập đó và khởi động lại (Tôi đã thử khởi động lại trước khi xóa các mục nhập reg, FYI), mọi thứ đã hoạt động trở lại.

Các mục đăng ký có gây ra sự cố không? Ai biết. Nhưng nó đã khắc phục được vấn đề của tôi.

+0

dkr88, cảm ơn bạn vì câu trả lời này, vì nó đã giải quyết được vấn đề của tôi. Tôi đã làm chính xác những gì bạn đã đăng và mọi thứ hoạt động ngay bây giờ! – brozo

+1

Đã làm tương tự nhưng vẫn không hiệu quả đối với tôi. Tôi đang bối rối. Tôi đã được đào tạo cho phông chữ của riêng tôi. gỡ cài đặt tesseract 3.01v và làm sạch registry với phần mềm dọn dẹp registry này. Ai đó có thể cho tôi biết những tập tin nào tôi nên đưa vào thư mục tessdata? bằng cách tôi đã đào tạo tesseract cho phông chữ của riêng tôi. Tôi chỉ bối rối những gì tôi nên được bao gồm trong đó. –

+0

Cảm ơn vì điều này. Điều này giải quyết được vấn đề của tôi. Tôi đã không xóa bất kỳ sổ đăng ký nào mà tôi vừa gỡ cài đặt tesseract3 để dọn dẹp registry sau khi khởi động lại và cần phải khởi động lại. – Marek

1

Trong trường hợp của tôi câu trả lời từ dkr88 đã thực hiện công việc, cảm ơn rất nhiều. Tôi đoán có một số phụ thuộc bị hỏng khi tesseract được cài đặt như một độc lập trước đây. Hơn nữa, chất lượng OCR có vẻ tốt hơn so với MODI mặc dù hệ điều hành tiltcorrection sau này hoạt động trong các trường hợp khắc nghiệt hơn (văn bản dọc).

Tôi rất hài lòng với tessnet2 bây giờ. Chỉ có một nhược điểm: Tôi cần thay đổi ứng dụng của mình.config (như được mô tả trên internet) và thêm vào các nội dung sau:

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
</startup> 
1

Vấn đề của tôi là tôi không chạy ứng dụng có quyền Quản trị viên.

Khi tôi nhấp chuột phải chạy và chọn Quản trị viên cục bộ hoạt động.

21

Đối với bất kỳ ai vẫn gặp sự cố sau tất cả những điều này, hãy đảm bảo rằng bạn đang sử dụng tessnet2 mà bạn tải xuống các tệp ngôn ngữ chính xác.

Bạn muốn dữ liệu tiếng Anh cho Tesseract (2.00 trở lên) và không phải là dữ liệu tiếng Anh cho Tesseract 3,01 phiên bản. Tôi hy vọng điều này giúp bạn tiết kiệm một vài giờ! :)

+3

Cảm ơn, Adam, điều này đã khắc phục sự cố cho tôi khi tôi đang cố gắng sử dụng các tệp ngôn ngữ cho phiên bản 3.0. Tessnet2 dựa trên Tesseract 2.0, tất nhiên. –

+0

Thật vậy, nó là một sai lầm đơn giản để làm cho rằng tôi thấy mình nhìn qua mã và thư viện và tất cả các loại khi nó đã được khá đơn giản, các tập tin sai. Vui mừng nó đã giúp! –

+0

nhưng nếu bạn muốn đào tạo nó cho phông chữ của riêng bạn thì sao? tôi có nên tải xuống các tệp dữ liệu ngôn ngữ và tôi nên đặt nó ở đâu? –

0

Trong trường hợp của tôi, tôi đã làm những thay đổi dưới đây để có được nó làm việc :)

  1. Downloaded https://tesseract-ocr.googlecode.com/files/tesseract-2.00.eng.tar.gz
  2. dán tessdata thư mục vào thư mục gỡ lỗi của tôi
  3. Và đã làm đoạn mã sau thay đổi

ocr.Init("D:\MyApplication\MyApplication\Debug", "eng", false);

để

ocr.Init(null, "eng", false);