文章目录 边缘检测步骤及原理高斯滤波器梯度计算非极大值抑制方法一方法二 双阈值检测 import cv2 import numpy as np import matplotlib.pyplot as plt import matplotlib.cm as c def cv_show(img): cv2.imshow("img",img) cv2.waitKey(0) def cv_read(img_file,gray=True): if gray == True: return cv2.imread(img_file,0) else: return cv2.imread(img_file) 边缘检测步骤及原理 高斯滤波器 梯度计算 非极大值抑制 比较当前 A 点和临近两个点 B,C 沿着梯度方向的值如果 A 的值是最大值,那么就保留 A 作为边界,再沿着梯度的方向作出垂直方向的线即是边界 方法一 方法二 简化版本 双阈值检测 '''使用的都是lena的图''' img = cv2.imread("img.png",cv2.IMREAD_GRAYSCALE) v1 = cv2.Canny(img,80,150) ## 上下阈值范围 v2 = cv2.Canny(img,50,100) res = np.hstack((v1,v2)) cv_show(res) img = cv2.imread("img.png",cv2.IMREAD_GRAYSCALE) v1 = cv2.Canny(img,120,250) ## 上下阈值范围 v2 = cv2.Canny(img,50,100) res = np.hstack((v1,v2)) cv_show(res)