2015-08-24 15 views
5

पर टेसेरैक्ट-ओसीआर मणि मुद्दा मैंने एक टेस्सेक्ट-ओसीआर (0.1.5) मणि स्थापित किया है।मैक ओएस एक्स

निर्भरता भी स्थापित कर रहे हैं (Tesseract/3.04.00 और leptonica/1,72)

मैक ओएस एक्स Yosemity।

जब मैं rake db:migrate करना एक त्रुटि दिखाई देती है:

rake aborted! 
CompilationError: compile error: see logs at /var/folders/xg/g9n7qvns5z1gsr_yjh09n1nm0000gn/T/.ffi-inline-501/d2f8bb8a1867b800ff8ad69a3b850c91521b3760.log 
/Users/user/.rvm/gems/[email protected]/gems/ffi-inline-0.0.4.3/lib/ffi/inline/compilers/gcc.rb:35:in `compile' 
/Users/user/.rvm/gems/[email protected]/gems/ffi-inline-0.0.4.3/lib/ffi/inline/builders/c.rb:114:in `shared_object' 
/Users/user/.rvm/gems/[email protected]/gems/ffi-inline-0.0.4.3/lib/ffi/inline/builders.rb:90:in `block in build' 
/Users/user/.rvm/gems/[email protected]/gems/ffi-inline-0.0.4.3/lib/ffi/inline/builders.rb:87:in `instance_eval' 
/Users/user/.rvm/gems/[email protected]/gems/ffi-inline-0.0.4.3/lib/ffi/inline/builders.rb:87:in `build' 
/Users/user/.rvm/gems/[email protected]/gems/ffi-inline-0.0.4.3/lib/ffi/inline/inline.rb:54:in `singleton_inline' 
/Users/user/.rvm/gems/[email protected]/gems/ffi-inline-0.0.4.3/lib/ffi/inline/inline.rb:39:in `inline' 
/Users/user/.rvm/gems/[email protected]/gems/tesseract-ocr-0.1.5/lib/tesseract/c/baseapi.rb:30:in `<module:BaseAPI>' 
/Users/user/.rvm/gems/[email protected]/gems/tesseract-ocr-0.1.5/lib/tesseract/c/baseapi.rb:27:in `<module:C>' 
/Users/user/.rvm/gems/[email protected]/gems/tesseract-ocr-0.1.5/lib/tesseract/c/baseapi.rb:25:in `<module:Tesseract>' 
/Users/user/.rvm/gems/[email protected]/gems/tesseract-ocr-0.1.5/lib/tesseract/c/baseapi.rb:25:in `<top (required)>' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `block in require' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:240:in `load_dependency' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require' 
/Users/user/.rvm/gems/[email protected]/gems/tesseract-ocr-0.1.5/lib/tesseract/c.rb:83:in `<top (required)>' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `block in require' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:240:in `load_dependency' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require' 
/Users/user/.rvm/gems/[email protected]/gems/tesseract-ocr-0.1.5/lib/tesseract/api.rb:26:in `<top (required)>' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `block in require' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:240:in `load_dependency' 
/Users/user/.rvm/gems/[email protected]/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require' 
/Users/user/.rvm/gems/[email protected]/gems/tesseract-ocr-0.1.5/lib/tesseract-ocr.rb:35:in `<top (required)>' 
/Users/user/.rvm/gems/[email protected]/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:in `require' 
/Users/user/.rvm/gems/[email protected]/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:in `block (2 levels) in require' 
/Users/user/.rvm/gems/[email protected]/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in `each' 
/Users/user/.rvm/gems/[email protected]/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in `block in require' 
/Users/user/.rvm/gems/[email protected]/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:in `each' 
/Users/user/.rvm/gems/[email protected]/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:in `require' 
/Users/user/.rvm/gems/[email protected]/gems/bundler-1.10.6/lib/bundler.rb:134:in `require' 
/Users/user/work/project/config/application.rb:17:in `<top (required)>' 
/Users/user/work/project/Rakefile:4:in `<top (required)>' 

लॉग में:

g++ -dynamic -bundle -fPIC -o /var/folders/xg/g9n7qvns5z1gsr_yjh09n1nm0000gn/T/.ffi-inline-501/d2f8bb8a1867b800ff8ad69a3b850c91521b3760.dylib /var/folders/xg/g9n7qvns5z1gsr_yjh09n1nm0000gn/T/.ffi-inline-501/d2f8bb8a1867b800ff8ad69a3b850c91521b3760.cpp -ltesseract 2>>/var/folders/xg/g9n7qvns5z1gsr_yjh09n1nm0000gn/T/.ffi-inline-501/d2f8bb8a1867b800ff8ad69a3b850c91521b3760.log 
/Users/user/.rvm/gems/[email protected]/gems/tesseract-ocr-0.1.5/lib/tesseract/c/baseapi.rb:171:10: error: no matching member function for call to 'SetImage' 
           api->SetImage(pix); 
           ~~~~~^~~~~~~~ 
/usr/local/include/tesseract/baseapi.h:354:8: note: candidate function not viable: 1st argument ('const Pix *') would lose const qualifier 
    void SetImage(Pix* pix); 
    ^
/usr/local/include/tesseract/baseapi.h:341:8: note: candidate function not viable: requires 5 arguments, but 1 was provided 
    void SetImage(const unsigned char* imagedata, int width, int height, 
    ^
/Users/user/.rvm/gems/[email protected]/gems/tesseract-ocr-0.1.5/lib/tesseract/c/baseapi.rb:183:49: error: cannot initialize a parameter of type 'tesseract::TessResultRenderer *' with an lvalue of type 'STRING *' 
           return api->ProcessPages(filename, NULL, 0, output); 
                      ^~~~~~ 
/usr/local/include/tesseract/baseapi.h:542:63: note: passing argument to parameter 'renderer' here 
        int timeout_millisec, TessResultRenderer* renderer); 
                  ^
/Users/user/.rvm/gems/[email protected]/gems/tesseract-ocr-0.1.5/lib/tesseract/c/baseapi.rb:189:65: error: cannot initialize a parameter of type 'tesseract::TessResultRenderer *' with an lvalue of type 'STRING *' 
           return api->ProcessPage(pix, page_index, filename, NULL, 0, output); 
                          ^~~~~~ 
/usr/local/include/tesseract/baseapi.h:558:40: note: passing argument to parameter 'renderer' here 
        TessResultRenderer* renderer); 
            ^

मैं इसे कैसे हल कर सकते हैं?

अद्यतन: यह डुप्लिकेट प्रश्न नहीं है। यह Error setting up the tesseract OCR in gem in rails

उत्तर

8

Tesseract डेवलपर्स के स्वयं के संस्करण जाँच करते हैं संस्करण 3.0.4 और Tesseract-ओसीआर मणि में काफी कुछ सामान बदल इसके साथ संगतता खो दिया है। सबसे अच्छा समाधान मैं अब के लिए डाउनग्रेड करना है। आपके मैक पर टेस्सेरैक्ट के पिछले संस्करण स्थापित हो सकते हैं, इसे खोजने के लिए brew info tesseract का उपयोग करें। यदि ऐसा है, तो बस brew switch का उपयोग करें। मैं हाल ही में brew cleanup किया था, तो मैं Tesseract स्थापना रद्द करें और पुराने सूत्र से इसे स्थापित है, इसलिए जैसे ही था:

$ brew uninstall tesseract 
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew/8ba134eda537d2cee7daa7ebdd9f728389d9c53e/Library/Formula/tesseract.rb 

यह Tesseract 3.02.02_3d कि काम कर रहा है स्थापित हो जाएगा। आप अधिक जानकारी प्राप्त कर सकते हैं और इस समस्या को tesseract-ocr repo पर ट्रैक कर सकते हैं।

+0

यह काम नहीं करता है। चेतावनियों का एक गुच्छा फेंकता है और त्रुटियों को बहिष्कृत करता है –

+0

@ माहेशमेस्टा क्षमा करें, मदद नहीं कर सकता, तब से टेसरेक्ट के साथ काम नहीं कर रहा है। मुझे लगता है कि आपको इसे स्वयं हल करना है, [कुछ repo] में कुछ प्रचार करें (https://github.com/meh/ruby-tesseract-ocr/issues/50) शायद – parkh

0

मदद नहीं करता है से लॉग यह पता चला है कि मैं हेडर फाइल याद आ रही थी उत्पन्न, मेरे साथ इस मुद्दे मुझे

के लिए समस्या हल है कि मैं गलत संस्करण को संदर्भित किया गया था ताकि, मणि फाइल करने के लिए इन कोड को जोड़ने था
ENV['CFLAGS'] = '-I/usr/local/Cellar/tesseract/3.02.02_3/include -I/usr/local/Cellar/leptonica/1.71_1/include' 
ENV['LDFLAGS'] = '-L/usr/local/Cellar/tesseract/3.02.02_3/lib -L/usr/local/Cellar/leptonica/1.71_1/lib' 

भी Tesseract और leptonica

+0

मैंने लिखा है कि यह पुराना फिक्स मदद नहीं करता है। –

1

यदि आप टेसेरैक्ट को डाउनग्रेड नहीं करना चाहते हैं, तो एक वैकल्पिक त्वरित और गंदे विधि को टेसरेक्ट को शेल कमांड के रूप में निष्पादित करना होगा और सामग्री को एक्सेस करने के लिए सहेजने वाली फ़ाइल खोलें (नोट: स्ट्रिंग इंटरपोलेशन शैल कमांड में काम करता है)

input_image = 'input.tif' 
`tesseract #{input_image} output -l eng` 
file = File.open('output.txt')