1
所以,我沒有在Matlab是這樣的:fspecial的索貝爾面具是否可以找到水平或垂直邊緣?
s = fspecial('sobel');
imshow(conv2(image, s));
在MATLAB,當我創建fspecial
索貝爾口罩並使用與conv2
即面膜的形象,是令人費解的圖像中的邊緣水平或垂直邊緣還是已經添加了水平和垂直邊緣?那麼對角邊緣呢?
所以,我沒有在Matlab是這樣的:fspecial的索貝爾面具是否可以找到水平或垂直邊緣?
s = fspecial('sobel');
imshow(conv2(image, s));
在MATLAB,當我創建fspecial
索貝爾口罩並使用與conv2
即面膜的形象,是令人費解的圖像中的邊緣水平或垂直邊緣還是已經添加了水平和垂直邊緣?那麼對角邊緣呢?
到fspecial
文檔告訴我們
H = fspecial(「索貝爾」)返回一個3×3濾波器h(如下所示),強調通過近似垂直梯度使用平滑化效果的水平邊緣。如果你需要強調垂直邊緣,調換過濾
轉置過濾器,使用
hvert = (fspecial('sobel'))'
的Sobel filter基本上是一個平滑的微分算。通過檢測水平和垂直邊緣,您基本上可以檢索圖像梯度的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