opencv边缘检测canny

    科技2023-10-25  104

    opencv边缘检测canny

    边缘检测时需要先将图像处理成灰度图像。 下一步是高斯滤波,后续会讲解。

    import cv2 import numpy as np import random img0 = cv2.imread(r"C:\Users\lenovo\Desktop\python\python_vision\image.jpg",1) imgInfo = img0.shape height = imgInfo[0] weight = imgInfo[1] # 转换灰度图像 2.高斯滤波 3.canny算法 gray = cv2.cvtColor(img0,cv2.COLOR_RGB2GRAY) imgG = cv2.GaussianBlur(gray,(3,3),0) dst = cv2.Canny(imgG,50,50) cv2.imshow("dst",dst) cv2.waitKey(0)

    OpenCV-Python中Canny函数的原型为:

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

    必要参数: 第一个参数是需要处理的原图像,该图像必须为单通道的灰度图; 第二个参数是阈值1; 第三个参数是阈值2。 其中较大的阈值2用于检测图像中明显的边缘,但一般情况下检测的效果不会那么完美,边缘检测出来是断断续续的。所以这时候用较小的第一个阈值用于将这些间断的边缘连接起来。 可选参数中apertureSize就是Sobel算子的大小。而L2gradient参数是一个布尔值,如果为真,则使用更精确的L2范数进行计算(即两个方向的倒数的平方和再开放),否则使用L1范数(直接将两个方向导数的绝对值相加)。

    Processed: 0.009, SQL: 8