2012-04-08 12 views
20

http://code.google.com/p/tesseractdotnet/Tesseract 3 (ओसीआर) - नेट आवरण

मैं एक समस्या मेरे दृश्य स्टूडियो 2010 परियोजनाओं में काम करने के लिए Tesseract हो रही हो रहा है। मैंने कंसोल और विनफॉर्म की कोशिश की है और दोनों का एक ही परिणाम है।

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

मैं dll संलग्न में पाया जा सकता है जो 64 से ऊपर वेबसाइट से पोस्ट करने के लिए एक संदर्भ द्वारा जोड़ा जा रहा: मैं किसी और जो इसे VS2010 में काम करने का दावा करके एक dll भर में आ गए हैं। हर बार जब मैं अपनी परियोजना का निर्माण करता हूं तो मुझे AccessViolationException मिलता है कि सुरक्षित स्मृति को पढ़ने या लिखने का प्रयास किया गया था।

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); 
      } 
     } 
    } 
} 

पहुँच उल्लंघन अपवाद हमेशा if (processor.Init(TessractData, language, (int)eOcrEngineMode.OEM_DEFAULT)) को इंगित करता है। मैंने यह सुनिश्चित करने के लिए कुछ सुझाव देखे हैं कि समाधान प्लेटफॉर्म को कॉन्फ़िगरेशन मैनेजर में x86 पर सेट किया गया है और टेस्डटाटा फ़ोल्डर स्थान पीछे की ओर स्लैश के साथ समाप्त हो गया है, इसका कोई फायदा नहीं हुआ है। कोई विचार?

+1

क्या आप अपना पूरा कार्यान्वयन साझा कर सकते हैं? मुझे लगता है कि मैं इसे कैसे सेट अप करने के लिए विवादित निर्देश पढ़ रहा हूं। – Roger

+0

क्रेडिट नहीं ले सकता है लेकिन यह मेरे लिए काम करता है: इस http://code.google.com/p/tesseract-ocr/downloads/detail?name=eng.traineddata के साथ tessdata फ़ोल्डर में 'eng.traineddata' को बदलें। gz – Alex

उत्तर

7

यह है कि समस्या पैदा कर रहा था tessdata फ़ोल्डर की सामग्री को प्रतीत होता है। पहले लिंक से टेस्डाटा फ़ोल्डर प्राप्त किया और अब सब काम कर रहा है।

2

मैंने अभी टेस्सेरैक्ट इंजन 3 के साथ एक परियोजना पूरी की है। मुझे लगता है कि इंजन में एक बग है, जिसे सुधारने की आवश्यकता है। "AccessViolationError" को हटाने के लिए मैंने क्या किया था, असली tessdata निर्देशिका स्ट्रिंग में "\ tessdata" जोड़ें। मुझे नहीं पता क्यों, लेकिन इंजन टेस्डाटा पथ में सबसे निचली निर्देशिका को छेड़छाड़ कर रहा है।

बस बनाया पूर्ण ओसीआर पैकेज (DLLs + Tessdata (अंग्रेजी)) कि .नेट फ्रेमवर्क के साथ काम करता 4.

+0

सच है! फ़ोल्डर "e: \ tessdata" में स्थित है, और चर परिभाषा 'const string tessractData = @ "e: \ tessdata \ tessdata" है; –

0

अगर किसी के पास एक ही समस्या है और पिछली स्लैश के साथ सलाह काम नहीं करती है, तो कोशिश करें ... दो धीमी गति से धीमा! Seriosly। इससे मेरा काम बनता है।

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

लगता है कि आपकी समस्या here का उल्लेख स्थिरता समस्या से संबंधित है। आधिकारिक site पर पिछले स्थिर रिलीज 2.4.1 का उपयोग करने की सिफारिश है। आप इसे पैकेज प्रबंधक कमांड के माध्यम से nuget.org से इंस्टॉल कर सकते हैं: Install-Package Tesseract -Version 2.4.1

संबंधित मुद्दे