Python
1TypeError: calcuGray() takes 5 positional arguments but 6 were given 2rotatedImg[y,x] = self.calcuGray(cropImg,inputImg[Y0,X0],self.distMat,self.distCoeif,self.grayCoeif) 3
関数calcuGray()を定義する所も、コールする時も5つのパラメータを持っています。
上記エラーメッセージが何を意味するのでしょうか
しかし、エラーメッセージでは「6つの引数が渡されている」となってますよ。
何はともあれ、コードも提示してくださいな。この手のミスは、書いた本人は「思い込み」で見落としやすいんで。
質問するときのヒント
https://teratail.com/help/question-tips
インスタンスメソッドの "self" パラメータを勘定に入れていないのでしょう。
Give us your code.
「関数calcuGray()を定義する所」のコードを質問に追加して下さい。
そうすれば、回答者の理解が容易になると思います。
コードを示さずに議論を進めるのは無理があります。
引数 (cropImg,inputImg[Y0,X0],self.distMat,self.distCoeif,self.grayCoeif) に使われている値を確認するのも良いと思います。
Pythonの関数は、引数に配列やタプルなども使えますから、関数の引数の数と、実際に渡される値の数が一致しないこともありますよ。
> もうちんぷんかんぷん!このメッセージは
質問タイトルは質問の内容が分かるものにしましょう。
もしかして、Pythonのclass メンバーメソッドは必ずselfを引数として入れなければならないのでしょうか。
「入れなければならない」ではなく、第一パラメータはそのインスタンス自身(の参照)として処理されます。名前は何でもよくて、慣例として self が使われています。
> 第一パラメータはそのインスタンス自身(の参照)として処理されます。名前は何でもよくて、慣例として self が使われています。
これで、不都合の原因が分かりました❣
本当にありがとうございました。
回答2件
あなたの回答
tips
プレビュー