Canny是如何做到这么高效的呢?简单来说总结为以下4步:
1、使用5*5高斯滤波消除噪音
2、调用索贝尔计算图像梯度的方向(0°/45°/90°/135°)
3、在4个方向上取局部最大值
4、阈值计算
Canny的api:
Canny(img,minVal,maxVal,...)
Img:具体对哪张图片操作
minVal:最小的阈值是多少,小于这个阈值就不认为是个边缘
maxVal:最大的阈值是多少,大于这个值肯定是边缘,在最小值和最大值之间的要计算
import cv2 import numpy as np # 导入一张图 img=cv2.imread('你的图片') # canny边缘检测 dst=cv2.Canny(img,100,220) # 显示图片 cv2.imshow('img',img) cv2.imshow('dst',dst) cv2.waitKey(0)