理论
Canny Edge Detection 是一个流行的边界检测算法. 它是一个多步骤的算法
- 降噪
- 寻找图像的灰度梯度
- 非最大值抑制
- 迟滞阈值
Canny Edge Detection in OpenCV
OpenCV 把如上所有步骤集成到同一个函数(cv.Canny())中.
- 第一个参数是我们输入的图片
- 第二和第三个参数分别是最小值和最大值
- 第四个参数是孔径尺寸, 它被用于寻找图像梯度, 是 Sobel kernel 的尺寸, 默认值是 3.
- 最后一个参数是 L2gradient(指定查找渐变幅度的公式), 如果为 True, 它使用如上更精密的公式, 否则使用 Edge_Gradient(G)=|Gx|+|Gy|, 默认值为 False
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('messi5.jpg',0)
edges = cv.Canny(img,100,200)
plt.subplot(121),plt.imshow(img,cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()
运行结果:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于