python tesseract“AttributeError:setImage”

时间:2014-11-19 13:15:51

标签: python python-tesseract

我试图在python中运行tesseract:

...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

我收到一个错误: 引发AttributeError(名称) AttributeError:setImage 我无法弄清楚原因。拜托,有人可以帮助我吗?。

1 个答案:

答案 0 :(得分:4)

检查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)

您要拨打的功能是

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

对SetImage使用uppcase S,而不是小写