Canny 边缘检测

作者: 陨星落云 | 来源:发表于2019-08-10 22:44 被阅读5次

Canny 边缘检测

在 OpenCV 中,使用函数:cv2.Canny()

cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]])

参数解释

  • image:源图像
  • threshold1:阈值1
  • threshold2:阈值2
  • apertureSize:可选参数,Sobel算子的大小,默认值为 3
  • L2gradient,它可以用来设定求梯度大小的方程。如果设为 True,就会使用方程:E d g e_{-} \text {Gradient}(G)=\sqrt{G_{x}^{2}+G_{y}^{2}},否则使用方程:\text {Edge_Gradient}(G)=\left|G_{x}^{2}\right|+\left|G_{y}^{2}\right|代替,默认值为 False。
def nothing(x):
    pass
img = cv2.imread('lena.jpg')
cv2.namedWindow('edges',cv2.WINDOW_NORMAL)
cv2.createTrackbar('minVal','edges',0,255,nothing)
cv2.createTrackbar('maxVal','edges',0,255,nothing)

while(1):
    minval=cv2.getTrackbarPos('minVal','edges')
    maxval=cv2.getTrackbarPos('maxVal','edges')
    edges = cv2.Canny(img,minval,maxval)
    cv2.imshow('edges',edges)
    k=cv2.waitKey(1)&0xFF
    if k==27:
        break
cv2.destroyAllWindows()
canny检测.gif

参考资料:
《数字图像处理》《OpenCV-Python-Toturial-中文版》

相关文章

网友评论

    本文标题:Canny 边缘检测

    本文链接:https://www.haomeiwen.com/subject/lpbdjctx.html