欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-02 08:53:21
利用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