1

だから私はMatlabでこのようなことをしました:

s = fspecial('sobel');
imshow(conv2(image, s));

matlab でソーベル マスクを作成し、fspecialそのマスクを画像で使用するとconv2、畳み込み画像のエッジは水平エッジまたは垂直エッジですか、それとも水平エッジと垂直エッジの両方が既に追加されていますか? 斜めのエッジはどうですか?

4

1 に答える 1

5

fspecial教えてくれるドキュメント

h = fspecial('sobel')は、3行3列のフィルターh(以下に表示)を返します。このフィルターは、垂直方向のグラデーションを近似することにより、平滑化効果を使用して水平方向のエッジを強調します。垂直方向のエッジを強調する必要がある場合は、フィルターを転置します

フィルタをトランスポーズするには、

hvert = ( fspecial('sobel') )'

Sobelフィルターは、基本的に平滑化された微分演算子です。水平エッジと垂直エッジの両方を検出することにより、基本的に画像の勾配に対するソーベル近似を取得します。これにより、対角エッジも得られます。

エッジの方向を気にせずに実際にエッジを強調するには、このグラデーションの大きさを使用します。

hy = fspecial('sobel');
hx = hy';
gx = imfilter(image, hx); % x component of Sobel gradient
gy = imfilter(image, hy); % y component 

gmag = hypot(gx,gy); % magnitude of Sobel gradient
于 2013-03-16T15:33:40.037 に答える