一、Canny边缘检测
Canny边缘检测的过程如下:
(1) 使用高斯滤波器进行滤波,平滑图像并滤除噪音,同时进行了像素点的归一化处理。
(2)计算图中每个像素点的梯度强度和方向
(3)应用非极大值抑制,以消除边缘检测带来的杂散效应。
(4)应用双阈值检测来确定其真实的和潜在的边缘
(5)通过抑制孤立的弱边缘最终完成边缘检测
1、使用高斯滤波器时,高斯核的大小是可变的,因此其对于边缘检测的效果也是变化的。滤波器的核越大,边缘信息对于噪声的敏感度就越低,但是边缘检测的定位错误也会随之增加,一般情况下选取5x5的卷积核。
2、高斯过滤完成后,就要计算图像像素点的梯度值以及其梯度方向,梯度方向总是与边缘垂直,通常取近似值为水平、垂直、对角线上的八个方向。
计算梯度的方法就是先使用Sobel算子计算出图像的水平以及垂直方向梯度,接着将两个梯度方向值进行反正切计算,得到方向角度。所以计算梯度时,最后每一个像素点都会得到两个值—梯度的幅度和角度。
3、非极大值抑制
通过这一步操作可以将边界更加细化,使得图像的边缘轮廓更加清晰,上一节使用sobel算子检测边缘时,最后得到的效果图边缘线很厚。
可以看这篇笔记的效果图:opencv-python图像处理 ----图像梯度、Sobel算子
非极大值抑制的做法就是遍历图像中的所有像素点,去除非边缘的点。逐一遍历像素点时&#
opencv-python图像处理 ---Canny边缘检测
最新推荐文章于 2024-04-13 16:06:01 发布