用法:
skimage.feature.canny(image, sigma=1.0, low_threshold=None, high_threshold=None, mask=None, use_quantiles=False, *, mode='constant', cval=0.0)
使用 Canny 算法对图像进行边过滤。
- image:二维数组
灰度输入图像以检测边;可以是任何 dtype。
- sigma:浮点数,可选
高斯滤波器的标准偏差。
- low_threshold:浮点数,可选
滞后阈值(链接边)的下限。如果没有,low_threshold 设置为 dtype 最大值的 10%。
- high_threshold:浮点数,可选
滞后阈值的上限(链接边)。如果没有,high_threshold 设置为 dtype 最大值的 20%。
- mask:数组,dtype=bool,可选
将 Canny 的应用限制在某个区域的掩码。
- use_quantiles:布尔型,可选
如果
True
则将 low_threshold 和 high_threshold 视为边幅度图像的分位数,而不是绝对边幅度值。如果True
则阈值必须在 [0, 1] 范围内。- mode:字符串,{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’}
mode
参数确定在高斯滤波期间如何处理数组边界,其中cval
是模式等于 ‘constant’ 时的值。- cval:浮点数,可选
如果模式为‘constant’,则填充过去输入边的值。
- output:二维数组(图像)
二元边图。
参数:
返回:
注意:
该算法的步骤如下:
- 使用具有
sigma
宽度的高斯平滑图像。 - 应用水平和垂直 Sobel 算子来获得图像中的渐变。边强度是梯度的范数。
- 将潜在边细化到 1 像素宽的曲线。首先,在每个点找到边的法线。这是通过查看X-Sobel 和Y-Sobel 的符号和相对幅度来完成的,将点分为4 类:水平、垂直、对角线和对角线。然后查看正常和反向方向,看看其中任何一个方向的值是否大于所讨论的点。使用插值来获得混合点,而不是选择最接近法线的点。
- 执行滞后阈值处理:首先将高于高阈值的所有点标记为边。然后递归地将任何高于低阈值的点标记为 8 连接到标记点作为边。
参考:
- 1
Canny, J., A Computational Approach To Edge Detection, IEEE Trans. Pattern Analysis and Machine Intelligence, 8:679-714, 1986 DOI:10.1109/TPAMI.1986.4767851
- 2
William Green’s Canny tutorial https://en.wikipedia.org/wiki/Canny_edge_detector
例子:
>>> from skimage import feature >>> rng = np.random.default_rng() >>> # Generate noisy image of a square >>> im = np.zeros((256, 256)) >>> im[64:-64, 64:-64] = 1 >>> im += 0.2 * rng.random(im.shape) >>> # First trial with the Canny filter, with the default smoothing >>> edges1 = feature.canny(im) >>> # Increase the smoothing for better results >>> edges2 = feature.canny(im, sigma=3)
相关用法
- Python skimage.feature.corner_orientations用法及代码示例
- Python skimage.feature.corner_subpix用法及代码示例
- Python skimage.feature.corner_foerstner用法及代码示例
- Python skimage.feature.corner_harris用法及代码示例
- Python skimage.feature.corner_fast用法及代码示例
- Python skimage.feature.corner_peaks用法及代码示例
- Python skimage.feature.corner_moravec用法及代码示例
- Python skimage.feature.corner_shi_tomasi用法及代码示例
- Python skimage.feature.graycomatrix用法及代码示例
- Python skimage.feature.blob_doh用法及代码示例
- Python skimage.feature.blob_dog用法及代码示例
- Python skimage.feature.graycoprops用法及代码示例
- Python skimage.feature.structure_tensor用法及代码示例
- Python skimage.feature.hessian_matrix用法及代码示例
- Python skimage.feature.ORB用法及代码示例
- Python skimage.feature.peak_local_max用法及代码示例
- Python skimage.feature.CENSURE用法及代码示例
- Python skimage.feature.hessian_matrix_eigvals用法及代码示例
- Python skimage.feature.haar_like_feature_coord用法及代码示例
- Python skimage.feature.BRIEF用法及代码示例
注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.feature.canny。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。