• ベストアンサー

MATLAB edge関数呼び出し時のエラー

MATLAB初心者です。 MATLABver.6でedge関数を呼び出すと、「入力引数が多すぎます」と常に警告されます。引数などいろいろ変えてみたのですが解決できませんでした。解決法を教えてください、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.4

とりあえず、MATLABのCommandWindowに help edge と入れて、関数の仕様を確認したほうが良いのではないですか? 表示される関数仕様に引数についても書いてあるはずです。おそらく英語で表示されるでしょうが…。 もし、関数仕様が表示されない、もしくはおかしな内容が表示される場合、ToolBoxのedge関数よりも優先度の高い位置に他のedge関数が存在するのではないかと思います。 まあ、同一名称の関数が複数存在する場合は、そのことも表示されたような気がしますが。 ToolBoxのedge関数がMATLABのサーチパスに登録されていない場合は、関数がないというようなエラーメッセージが表示されるはずですし。

ogiek
質問者

お礼

確かに、edge関数を他で作っちゃてました…。 複数存在することは表示してもらえなかったんですが。 お手数おかけしました。ありがとうございました。

その他の回答 (3)

  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.3

ANo.2 ですが, matlab R2006b では, I = imread('Blue hills.jpg'); J = RGB2GRAY(I); BW1 = edge(J,'canny'); imshow(BW1); で動きました. 画像の配列が unit8 なので,文句言っている可能性もあるけど? I = imread('Blue hills.jpg'); J = double(RGB2GRAY(I)); BW1 = edge(J,'canny'); imshow(BW1,[]); かな?

  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.2

コードくらい書いてください. matlab R2006b で,カラー画像だと, 行列のサイズが違う という英語のエラーが出ました.

ogiek
質問者

お礼

すいません。 I = imread('ichiro.jpeg') I = RGB@GRAY(I); BW1 = edge(I,'canny'); imshow(BW1) です。matlabR12です。 サイズとかの問題なんですかねー;

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

「入力引数が多すぎます」 というんだから、入力引数が多すぎるのではないんですか? 実際に、どんな引数を指定したのかが全く書いてないので、私にはこれ以上何も言えません。 http://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/images/?/matlab/support/manual/r14/toolbox/images/edge.shtml

ogiek
質問者

お礼

回答ありがとうございます。 説明不測ですいません。引数は(I,'canny')や(I,'sobel')や(I)を試しましたが、だめでした。ユーザーズガイドのコピペでだめなので困ってます。