1.3 图像边缘检测edge函数的用法

(1)语法和说明

①BW = edge(I): 返回二值图像 BW,其中的值 1 对应于灰度或二值图像 I 中函数找到边缘的位置,值 0 对应于其他位置。默认情况下,edge 使用 Sobel 边缘检测方法。

②BW = edge(I,method): 使用 method 指定的边缘检测算法检测图像 I 中的边缘。

③BW = edge(I,method,threshold): 返回强度高于 threshold 的所有边缘。

④BW = edge(I,method,threshold,direction): 指定要检测的边缘的方向。Sobel 和 Prewitt 方法可以检测垂直方向和/或水平方向的边缘。Roberts 方法可以检测与水平方向成 45 度角和/或 135 度角的边缘。仅当 method 是 ‘Sobel’、‘Prewitt’ 或 ‘Roberts’ 时,此语法才有效。

⑤BW = edge(___,‘nothinning’) : 跳过边缘细化阶段,这可以提高性能。仅当 method 是 ‘Sobel’、‘Prewitt’ 或 ‘Roberts’ 时,此语法才有效。

⑥BW = edge(I,method,threshold,sigma): 指定 sigma,即滤波器的标准差。仅当 method 是 ‘log’ 或 ‘Canny’ 时,此语法才有效。

⑦BW = edge(I,method,threshold,h) : 使用 ‘zerocross’ 方法和您指定的滤波器 h 检测边缘。仅当 method 是 ‘zerocross’ 时,此语法才有效。

⑧[BW,threshOut] = edge(___): 返回阈值。

⑨[BW,threshOut,Gv,Gh] = edge(___) : 还返回定向梯度幅值。对于 Sobel 和 Prewitt 方法,Gv 和 Gh 对应于垂直和水平梯度。对于 Roberts 方法,Gv 和 Gh 分别对应于与水平方向成 45° 和 135° 角的梯度。仅当 method 是 ‘Sobel’、‘Prewitt’ 或 ‘Roberts’ 时,此语法才有效。

1.3 图像边缘检测edge函数的用法_第1张图片

例:图像边缘检测

I=imread('i678.png');
I1=I(:,:,2);
subplot(2,2,1),imshow(I1)
title('原图');
J1=edge(I1 ,'sobel');
subplot(2,2,2),imshow(J1)
title('边缘检测方法为''sobel''');
J2=edge(I1,'prewitt');
subplot(2,2,3),imshow(J2)
title('边缘检测方法为''prewitt''');
J3=edge(I1,'log');
subplot(2,2,4),imshow(J3)
title('边缘检测方法为''log''');

1.3 图像边缘检测edge函数的用法_第2张图片

你可能感兴趣的:(Image,Processing,Toolbox使用说明,图像处理)