### 边缘检测终极大法,Canny
1、canny边缘检测
1.1 来源
canny边缘检测算子是传统边缘检测算子中最优秀的,canny检测基于下面三个目标:
(1)低错误率。即所有边缘都应该找到,并且没有虚假边缘。
(2)准确的定位边缘。即检测到的边缘应该接近真实的边缘。
(3)单个边缘点响应。即对于边缘检测,只返回单点厚度的结果。
1.2 方法步骤
(1)使用5x5高斯滤波器平滑图像(基本边缘检测基本都有这步,为了减少噪声的影响)
(2)计算梯度幅值和边缘方向(0/45/90/135)
(3)非极大值抑制(细化边缘),取局部极大值
(4)使用双阈值处理和连通性分析检测和链接边缘
2.Canny API:
Canny(img,minVal,maxVal,...)minVal最小阈值,maxVal最大阈值
import cv2 as cv
import numpy as np
img = cv.imread('./img/houmo.png')
dst = cv.Canny(img,100,200)
# 将识别边缘后的图像绘制到源图像中
img[:][dst != 0] = [0,0,255]
cv.imshow('dst',dst)
cv.imshow('img',img)
cv.waitKey(0)