python canny轮廓线的坐标_python库skimage 实现canny边缘探测

Canny算法

skimage库中函数

skimage.feature.canny(image, sigma=1.0, low_threshold=None, high_threshold=None, mask=None, use_quantiles=False)

sigma:高斯滤波器的标准差

low_threshold:Canny算法最后一步中,小于该阈值的像素直接置为0

high_threshold:Canny算法最后一步中,大于该阈值的像素直接置为255

实验:Canny算法作用于图像

"""

===================

Canny edge detector

===================

The Canny filter is a multi-stage edge detector. It uses a filter based on the

derivative of a Gaussian in order to compute the intensity of the gradients.The

Gaussian reduces the effect of noise present in the image. Then, potential

edges are thinned down to 1-pixel curves by removing non-maximum pixels of the

gradient magnitude. Finally, edge pixels are kept or removed using hysteresis

thresholding on the gradient magnitude.

The Canny has three adjustable parameters: the width of the Gaussian (the

noisier the image, the greater the width), and the low and high threshold for

the hysteresis thresholding.

"""

import numpy as np

import matplotlib.pyplot as plt

from scipy import ndimage as ndi

from skimage import feature

# Generate noisy image of a square

im = np.zeros((128, 128))

im[32:-32, 32:-32] = 1

im = ndi.rotate(im, 15, mode='constant')

im = ndi.gaussian_filter(im, 4)

im += 0.2 * np.random.random(im.shape)

# Compute the Canny filter for two values of sigma

edges1 = feature.canny(im)

edges2 = feature.canny(im, sigma=3)

# display results

fig, (ax1, ax2, ax3) = plt.subplots(nrows=1, ncols=3, figsize=(8, 3),

sharex=True, sharey=True)

ax1.imshow(im, cmap=plt.cm.gray)

ax1.axis('off')

ax1.set_title('noisy image', fontsize=20)

ax2.imshow(edges1, cmap=plt.cm.gray)

ax2.axis('off')

ax2.set_title(r'Canny filter, $\sigma=1$', fontsize=20)

ax3.imshow(edges2, cmap=plt.cm.gray)

ax3.axis('off')

ax3.set_title(r'Canny filter, $\sigma=3$', fontsize=20)

fig.tight_layout()

plt.show()

实验结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值