Canny边缘检测函数:
cv2.Canny(image, minVal, maxVal[,edges[,apertureSize[,L2gradient]]])
其中:
- image:输入图像;
- minVal:最小阈值;
- maxVal:最大阈值;
- apertureSize:计算图像梯度的Sobel卷积核的大小,默认值为 3;
- L2gradient:用来设定求梯度大小的方程,默认False。
注:两个阈值minVal 和 maxVal的作用是确定哪些边界是真正的边界。当图像的灰度梯度高于 maxVal 时被认为是真的边界,低于 minVal 的边界会被抛弃。如果介于两者之间的话,就要看这个点是否与某个被确定为真正的边界点相连,如果是就认为它也是边界点,如果不是就抛弃。
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('1.png',0)
edges = cv2.Canny(img, 100, 200) #边缘检测
plt.subplot(121), plt.imshow(img, cmap='gray'), plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(edges, cmap='gray'), plt.title('Edge')
plt.xticks([]), plt.yticks([])
plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13