本节内容上接这篇博客:
文章目录
笔记来源
2.7 图像阈值与平滑处理
- 理解阈值
理解阈值是干什么的?
假如有如图上的像素点数值,对于每一个像素点值进行判断:该像素点大于阈值如何处理,小于阈值如何处理
这就是阈值函数要做的事情
2.7.1 阈值处理
- 实例
2.7.2. 平滑处理
平滑处理:即滤波操作
均值滤波
方框滤波
normalize = True :会做归一化,即进行核大小的计算,再除去核大小
高斯滤波
距离越近越重视,发挥的效果越好;越远发挥的效果不是那么好
- 知识博客
- 中值滤波
中值
:从小到大排序,找到中间的数值
- 展示所有
2.8 图像梯度 ⭐
这条线左右两边都是白色一样,这条线不会产生梯度,因此边缘会产生梯度
这个点左边是0(黑)右边是255(白),左右两边梯度大一些 类似边缘检测
2.8.1 Sobel算子
算法简单,实际应用效率高于canny边缘检测效率,但是准确度是低于canny的
Sobel算子是高斯平滑与微分操作的结合体:
抗噪声能力强
,适用于效率要求较高,细纹处理要求不高的时候
考虑水平(Gx)和竖直(Gy)两个方向
右减左,下减上
- 函数
将sobel算子的部分中ksize设为-1,就是利用Scharr进行边缘检测
- 实例
- 计算水平方向
- 思考:上述图像为什么只有一半的圆?
- 如何做处理让右边圆显示出来?
- 计算竖直方向
- 计算G
此处建议分开计算Sobelx,Sobely,再计算整体
-
整体计算
-
分开计算
-
实例 lena图像
-
原图
-
分开计算
-
直接计算
-
注意
2.8.2 Scharr算子
使结果差异更明显(数值更大)
2.8.3 laplacian算子
中文名称:拉普拉斯算子
对噪音点敏感,可能并不是好事,因为一些噪音点并不是一些边界
- 算子综合实例
- 详细讲解
2.8.4 边缘检测原理⭐
边缘检测原理是图像处理和计算机视觉中的基本问题,边缘检测的目标是
标识数字图像中亮度变化明显的点
。
图像中属性中的显著变化通常反应了属性的重要事件和变化。
图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关地信息,保留了图像重要地结构属性。
常用的边缘检测方法可以分为两类:
- 基于搜索
- 基于零穿越
- 基于搜索
- 基于零穿越
2.8.5 Canny边缘检测⭐⭐
- 头衔
被认为是
最优的边缘检测算法
- 算法步骤
噪声去除
由于边缘检测很容易收到噪声的影响,所以首先使用5*5高斯滤波器
去除噪声【具体看平滑处理章节中的高斯滤波】计算图像梯度
计算图像中每个像素点的梯度强度和方向
非极大值抑制
在获得梯度的大小和方向之后,对整幅图像进行扫描,去除那些非边界上的点。对每一个像素进行检查,看这个点的梯度是不是周围具有相同梯度方向的点中最大的。如下图:
通俗讲解如上图,最后选择A-99%滞后阈值
应用双阈值检测来确定真实的和潜在的边缘
- 通过抑制孤立的弱边缘最终完成边缘检测
- 算法步骤详解
- 高斯滤波器
高斯滤波器:中间点比较大,边缘比较小
- 梯度和方向
使用的Sobel算子
具体看图像梯度中的Sobel算子
- 非极大值抑制
- 方法一
- 方法二
- 双阈值检测