@@ -49,10 +49,14 @@ cdef load_img(img, _clstm.Tensor2 *data):
4949    :param img:     Image 
5050    :type img:      :py:class:`PIL.Image.Image` 
5151    """  
52-     data.resize(img.width, img.height)
52+     if  hasattr (img, ' width'  ):
53+         width, height =  img.width, img.height
54+     elif  hasattr (img. ' size'  ):
55+         width, height =  img.size
56+     data.resize(width, height)
5357    imgdata =  img.load()
54-     for  i in  range (img. width):
55-         for  j in  range (img. height):
58+     for  i in  range (width):
59+         for  j in  range (height):
5660            px =  imgdata[i, j]
5761            #  Pillow returns pixels as [0, 255], but we need [0, 1]
5862            if  isinstance (px, tuple ):
@@ -182,10 +186,10 @@ cdef class ClstmOcr:
182186        :rtype:         unicode 
183187        """  
184188        cdef _clstm.Tensor2 data
185-         if  hasattr (img, ' width'  ):
186-             load_img(img, & data)
187-         elif  hasattr (img, ' shape'  ):
189+         if  hasattr (img, ' shape'  ):
188190            load_nparray(img, & data)
191+         else :
192+             load_img(img, & data)
189193        return  self ._ocr.train_utf8(
190194            data.map(), text.encode(' utf8'  )).decode(' utf8'  )
191195
@@ -198,10 +202,10 @@ cdef class ClstmOcr:
198202        :rtype:         unicode 
199203        """  
200204        cdef _clstm.Tensor2 data
201-         if  hasattr (img, ' width'  ):
202-             load_img(img, & data)
203-         elif  hasattr (img, ' shape'  ):
205+         if  hasattr (img, ' shape'  ):
204206            load_nparray(img, & data)
207+         else :
208+             load_img(img, & data)
205209        return  self ._ocr.predict_utf8(data.map()).decode(' utf8'  )
206210
207211    def  recognize_chars (self , img ):
@@ -218,10 +222,10 @@ cdef class ClstmOcr:
218222        cdef vector[_clstm.CharPrediction] preds
219223        cdef vector[_clstm.CharPrediction].iterator pred_it
220224        cdef wchar_t[2 ] cur_char
221-         if  hasattr (img, ' width'  ):
222-             load_img(img, & data)
223-         elif  hasattr (img, ' shape'  ):
225+         if  hasattr (img, ' shape'  ):
224226            load_nparray(img, & data)
227+         else :
228+             load_img(img, & data)
225229        self ._ocr.predict(preds, data.map())
226230        for  i in  range (preds.size()):
227231            cur_char[0 ] =  preds[i].c
0 commit comments