python-cv2 Canny() 方法


我们将看到如何使用 python open-cv 检测图像中的边缘,它以 cv2(计算机视觉)库的形式存在。

您可以使用库的Canny()方法cv2来检测图像中的边缘。要使用 cv2 库,您需要使用import statement.

Canny()方法使用精明的边缘检测算法来寻找图像中的边缘。

现在让我们先看一下方法的语法和返回值cv2 canny(),然后我们将继续示例。

句法

cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)

参数

您可以将五个参数传递给 resize() 方法。五个参数中,前三个(image,threshold,andthreshold2)是必须的;rest(apertureSize 和 L2gradient) 是可选的。

  1. 必要的参数是:

  2. image:n 维数组的源/输入图像。

  3. threshold1:它是强度梯度的高阈值。

  4. threshold2:

    它是强度梯度的低阈值。

    可选参数有:

  5. apertureSize:Sobel 滤波器的核(矩阵)阶。它的默认值是 (3 x 3),它的值应该是 3 到 7 之间的奇数。它用于寻找图像梯度。过滤器用于平滑和锐化图像。

  6. L2gradient:这指定了寻找梯度幅度的方程。L2gradient 为布尔类型,默认值为False.

返回值

它返回灰度边缘检测图像。

cv2 Canny() 方法示例

现在让我们看看 Python 代码:仅 Example 1:使用Canny()带有必要参数的方法。

# import computer vision library(cv2) in this code
import cv2

# main code
if __name__ == "__main__" :

    # mentioning absolute path of the image
    img_path = "C:\\Users\\user\\Desktop\\flower.jpg"

    # read/load an image
    image = cv2.imread(img_path)

    # show the input image on the newly created image window
    cv2.imshow('image window1',image)

    # detection of the edges
    img_edge = cv2.Canny(image,100,200)

    # show the image edges on the newly created image window
    cv2.imshow('image window2',img_edge)

输出:

输出1

Example 2:使用Canny()带有apertureSize参数值和必要参数的方法。

# import computer vision library(cv2) in this code
import cv2

# main code
if __name__ == "__main__" :

    # mentioning absolute path of the image
    img_path = "C:\\Users\\user\\Desktop\\flower.jpg"

    # read/load an image
    image = cv2.imread(img_path)

    # show the input image on the newly created image window
    cv2.imshow('image window1',image)

    # detection of the edges
    img_edge = cv2.Canny(image,100,200,apertureSize = 5)

    # show the image edges on the newly created image window
    cv2.imshow('image window2',img_edge)

输出 :

输出11

Example 3:使用 Canny() 方法L2gradientapertureSize参数值以及必要的参数。

# import computer vision library(cv2) in this code
import cv2

# main code
if __name__ == "__main__" :

    # mentioning absolute path of the image
    img_path = "C:\\Users\\user\\Desktop\\flower.jpg"

    # read/load an image
    image = cv2.imread(img_path)

    # show the input image on the newly created image window
    cv2.imshow('image window1',image)

    # detection of the edges
    img_edge = cv2.Canny(image,100,200,apertureSize = 5, L2gradient = True)

    # show the image edges on the newly created image window
    cv2.imshow('image window2',img_edge)

输出:

输出12

Example 4:使用Canny()带有L2gradient参数值和必要参数的方法。

输出:

s13

这就是 Python 中 cv2 Canny() 方法的全部内容。


原文链接:https://codingdict.com/