码迷,mamicode.com
首页 > 编程语言 > 详细

python库skimage 应用canny边缘探测算法

时间:2020-04-07 20:03:49      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:spl   res   sci   ons   +=   shape   lan   gaussian   present   

Canny算法

请参考:Canny算法python手动实现
请参考:Canny边缘检测算法原理及opencv实现

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()

技术图片

python库skimage 应用canny边缘探测算法

标签:spl   res   sci   ons   +=   shape   lan   gaussian   present   

原文地址:https://www.cnblogs.com/wojianxin/p/12655416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!