2017-11-27 3 views
0
if w<h: 
     normalized_char = np.ones((h, h), dtype='uint8') 
     start = (h-w)/2 
     normalized_char[:, start:start+w] = char 
    else: 
     normalized_char = np.ones((w, w), dtype='uint8') 
     start = (w-h)/2 
     normalized_char[start:start+h, :] = char 

jupyter上でこれを実行すると、このエラー、私はこのエラーを解決することができますどのようにTypeError:スライスインデックスは、整数またはNoneまたは__index__メソッドを持たなければなりません。それを解決するには?

<ipython-input-8-15d17de04b9c> in extractCharactersNew(function) 
    60    normalized_char = np.ones((h, h), dtype='uint8') 
    61    start = (h-w)/2 
---> 62    normalized_char[:, start:start+w] = char 
    63   else: 
    64    normalized_char = np.ones((w, w), dtype='uint8') 

TypeError: slice indices must be integers or None or have an __index__ method 

を取得?

+0

'(h-w)/ 2'は浮動小数点です。 – user2357112

答えて

1

あなたの誤差がある: -

TypeError: slice indices must be integers or None or have an __index__ method 

slice indices

、あなたのケースがある

normalized_char[:, start:start+w] = char 

にリストをスライスするために使用している変数を参照するには - startstart+w。リストスライスの場合、これらは整数でなければならず、__index__メソッドを持つ必要があります。この__index__メソッドは、そのオブジェクトの整数値を返す特別なメソッドです。 あなたが正しいslice indicesを提供していることを確認して、問題を解決できるはずです。 start = (h-w)//2(整数除算)を使用して、startが整数であることを確認できます。

+0

ありがとう!これはちょうど私の問題を解決! –

+0

それがあなたのために働く場合、答えを受け入れてください:) – Abhijeetk431

関連する問題