当前位置: 移动技术网 > IT编程>脚本编程>Python > 利用opencv实现canny算法图像边缘提取

利用opencv实现canny算法图像边缘提取

2020年07月30日  | 移动技术网IT编程  | 我要评论
利用opencv实现canny算法图像边缘提取canny算法写一个处理图片的函数canny算法Canny算法步骤: ①高斯模糊 - GaussianBlur ②灰度转换 - cvtColor ③计算梯度 – Sobel/Scharr ④非最大信号抑制 ⑤高低阈值输出二值图像——高低阈值比值为2:1或3:1最佳写一个处理图片的函数cv2.GaussianBlurcv2.Sobelimport cv2def Open

利用opencv实现canny算法图像边缘提取

canny算法

Canny算法步骤:
        ①高斯模糊 - GaussianBlur
        ②灰度转换 - cvtColor
        ③计算梯度 – Sobel/Scharr
        ④非最大信号抑制
        ⑤高低阈值输出二值图像——高低阈值比值为2:1或3:1最佳

写一个处理图片的函数

cv2.GaussianBlur
cv2.Sobel

import cv2
def Opencv_canny_edge_extraction(img):
    #img: 原图像
    #return 黑白边缘,彩色边缘
    gaus = cv2.GaussianBlur(img, (3, 3), 0) #高斯模糊
    gray = cv2.cvtColor(gaus,cv2.COLOR_BGR2GRAY) #灰度化
    gradx = cv2.Sobel(gray, cv2.CV_16SC1, 1, 0) 
    grady = cv2.Sobel(gray, cv2.CV_16SC1, 0, 1)
    edge_out = cv2.Canny(gradx, grady, 50, 150)  #黑白的边缘 高低阈值比值为2:1或3:1最佳(50:150 = 1:3)
    dst = cv2.bitwise_and(img, img,mask=edge_out)  # 彩色的边缘
    return edge_out,dst 

本文地址:https://blog.csdn.net/qq_44278517/article/details/107659146

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网