python でプログラムを作っていて、よく使うルーチンを関数化したところ、'numpy.ndarray' object is not callableが発生してしまう。この作った関数は一回目は正常に動く。でも2回目以降を実行するとこのエラーが発生してしまう。
なぜかこのエラーは画像を扱うプログラムを作っていると良く発生するようです。
原因は単に作った関数名と同じ変数を使ってしまったから。
例えば、
def rgbgray(img)
・・・
return img
のような関数を定義した後に、この関数を以下のように使ってしまうとエラーになってしまう。
rgbgray = rgbgray(img)
画像処理を何度か繰り返していると、うっかりこのようなミスをしてしまいます。
簡単に修正するには関数名を、rgbGrayのように一部を大文字にして小文字の変数と区別することです。
一部大文字にしている関数名が多いのはなぜかと昔思っていたのですが素人はハマってしまいますよね。
なぜかこのエラーは画像を扱うプログラムを作っていると良く発生するようです。
原因は単に作った関数名と同じ変数を使ってしまったから。
例えば、
def rgbgray(img)
・・・
return img
のような関数を定義した後に、この関数を以下のように使ってしまうとエラーになってしまう。
rgbgray = rgbgray(img)
画像処理を何度か繰り返していると、うっかりこのようなミスをしてしまいます。
簡単に修正するには関数名を、rgbGrayのように一部を大文字にして小文字の変数と区別することです。
一部大文字にしている関数名が多いのはなぜかと昔思っていたのですが素人はハマってしまいますよね。
※コメント投稿者のブログIDはブログ作成者のみに通知されます