利用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
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
网友评论