2012-04-08 28 views
20

http://code.google.com/p/tesseractdotnet/tesseract 3 (OCR) - NET Wrapper

benim Visual Studio 2010 projeleri çalışmak için tesseract alma sorun yaşıyorum. Konsol ve winformları denedim ve her ikisinin de aynı sonucu var.

http://code.google.com/p/tesseractdotnet/issues/detail?id=1

Yukarıda web sitesinden 64 mesaja bağlıdır bulunabilir dll bir başvuru ekliyorum: Ben VS2010 çalışan iddia başkası tarafından bir dll rastlamak var. Projemi her kurduğumda, korunan belleği okumak veya yazmak için bir girişimde bulunulduğunu söyleyen bir AccessViolationException aldım.

public void StartOCR() 
{ 
    const string language = "eng"; 
    const string TessractData = @"C:\Users\Joe\Desktop\tessdata\"; 

    using (TesseractProcessor processor = new TesseractProcessor()) 
    { 
     using (Bitmap bmp = Bitmap.FromFile(fileName) as Bitmap) 
     { 
      if (processor.Init(TessractData, language, (int)eOcrEngineMode.OEM_DEFAULT)) 
      { 
       string text = processor.Recognize(bmp); 
      } 
     } 
    } 
} 

erişim ihlali özel daima if (processor.Init(TessractData, language, (int)eOcrEngineMode.OEM_DEFAULT)) işaret ediyor. Çözüm platformunun yapılandırma yöneticisinde x86 olarak ayarlandığından emin olmak için birkaç öneri gördüm ve tessdata klasörünün yeri son noktayla sonlandırılıyor. Herhangi bir fikir?

+1

Tam uygulamanızı paylaşabilir misiniz? Bunu nasıl kuracağımı gösteren çelişkili talimatları okuyorum. – Roger

+0

Krediyi alamıyorum ama bu benim için çalıştı: tessdata klasöründeki 'eng.traineddata' bağlantısını bu http://code.google.com/p/tesseract-ocr/downloads/detail?name=eng.traineddata ile değiştirin. gz – Alex

cevap

7

.net framework ile çalışır (DLL + Tessdata) (ingilizce). İlk bağlantıdan tessdata klasörünü aldı ve şimdi çalışıyor.

2

Tesseract motoru 3 ile bir projeyi tamamladım. Sanırım, motorda bir hata var, düzeltilmesi gerekiyor. "AccessViolationError" ı kaldırmak için ne yaptım, gerçek tessdata dizin dizesi "\ tessdata" ekleyin. Nedenini bilmiyorum, ama motor Tessdata yolundaki en içteki dizini kesiyor gibi görünüyor.

Hemen yapılmış Tam OCR paket O soruna neden oldu tessdata klasörün içeriği olduğu ortaya çıktı 4.

+0

Doğru! Klasör "e: \ tessdata" içinde bulunur ve değişken tanımı 'const string tessractData = @" e: \ tessdata \ tessdata "; –

0

Birisi aynı sorun varsa ve arka plandaki eğik çizgi ile çalışmazsa, deneyin ... İKİ sonlandırma eğik çizgileri! Seriosly. Benim için çalışıyor.

if (processor.Init(@".\tessdata\\", "eng", (int)eOcrEngineMode.OEM_DEFAULT)) 
0

Sorununuz, belirtilen here numaralı kararlılık sorunuyla ilgilidir. Resmi site'da, önceki kararlı sürüm 2.4.1'i kullanmak için bir öneri vardır. Paket yöneticisi tarafından nuget.org adresinden yükleyebilirsiniz: Install-Package Tesseract -Version 2.4.1