1

I'm trying to make tesseract run in python:

...image is a numpy array (uint8)...

tessApi = tesseract.TessBaseAPI()
tessApi.Init(".","spa",tesseract.OEM_DEFAULT)
tessApi.SetVariable("tessedit_char_whitelist", "0123456789ACEIMNOPRSTU/imn")
tessApi.SetPageSegMode(tesseract.PSM_AUTO)
# SetImage(imagedata, width, height, bytes_per_pixel, bytes_per_line)
w = int(final.shape[1])
h = int(final.shape[0])
tessApi.setImage(image,w,h,1,w)
text = tessApi.GetUTF8Text()
print text

And I get an error: raise AttributeError(name) AttributeError: setImage I can't figure out why. Please, can anybody help me?.

1
  • Is it SetImage with capital S? Commented Nov 19, 2014 at 13:21

1 Answer 1

4

Check https://code.google.com/p/python-tesseract/source/browse/python-tesseract-0.9/src/tesseract.py

class TessBaseAPI(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, TessBaseAPI, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, TessBaseAPI, name)
    __repr__ = _swig_repr
    def __init__(self): 
        this = _tesseract.new_TessBaseAPI()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _tesseract.delete_TessBaseAPI
    __del__ = lambda self : None;
    __swig_getmethods__["Version"] = lambda x: _tesseract.TessBaseAPI_Version
    if _newclass:Version = staticmethod(_tesseract.TessBaseAPI_Version)
    __swig_getmethods__["getOpenCLDevice"] = lambda x: _tesseract.TessBaseAPI_getOpenCLDevice
    if _newclass:getOpenCLDevice = staticmethod(_tesseract.TessBaseAPI_getOpenCLDevice)
    __swig_getmethods__["CatchSignals"] = lambda x: _tesseract.TessBaseAPI_CatchSignals
    if _newclass:CatchSignals = staticmethod(_tesseract.TessBaseAPI_CatchSignals)
    def SetInputName(self, *args): return _tesseract.TessBaseAPI_SetInputName(self, *args)
    def GetInputName(self): return _tesseract.TessBaseAPI_GetInputName(self)
    ...
    def ClearAdaptiveClassifier(self): return _tesseract.TessBaseAPI_ClearAdaptiveClassifier(self)
    def SetImage(self, *args): return _tesseract.TessBaseAPI_SetImage(self, *args)

The function you are trying to call is

def SetImage(self, *args): return _tesseract.TessBaseAPI_SetImage(self, *args)

Use an uppcase S for SetImage, not a lowercase

Sign up to request clarification or add additional context in comments.

1 Comment

Can't believe it!!!...well I'm not a hacker but that's improper of me. Anyway, sorry about the stupid question and thank you very much (both @Tim and @Jae)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.