利用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最佳
写一个处理图片的函数
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