4

この両方の機能を使用して、スケール上のエッジを見つけます。入力画像があり、入力画像にマスク (例: prewitt) を適用し、結果の画像を取得します。

mypic = imread('examplepic.jpg')
hy = fspecial('prewitt')
yimfilter = imfilter(mypic,hy) % Using imfilter
yconv2 = conv2(mypic,hy) % Using conv2

これら2つの理論的な違いはどれですか? 出力が異なることはわかっていますが、違いは何ですか?

ありがとう

4

2 に答える 2

9

conv2は、2次元畳み込み全体を出力します。これは、yconv2がmypicよりも大きくなることを意味します。一方、imfilterは、デフォルトで畳み込みのエッジをトリミングして、yimfilterがmypicと同じサイズになるようにします。conv2のように、imfilterに畳み込み全体を残すようにすることができますが、これはデフォルトの動作ではありません。

他にも違いがあります。imfilterの「複製」オプション、imfilterは任意の数の次元(2つだけではない)で畳み込みを実行できますが、それについて質問されていたとは思いません。

于 2011-10-26T23:31:15.720 に答える