- 数字图像处理
- DIP - 主页
- DIP - 图像处理简介
- DIP - 信号与系统介绍
- DIP - 摄影史
- DIP - 应用和使用
- DIP - 尺寸概念
- DIP - 相机上的图像形成
- DIP - 摄像头机构
- DIP - 像素的概念
- DIP-- 透视变换
- DIP - 每像素位数的概念
- DIP - 图像类型
- DIP - 颜色代码转换
- DIP - 灰度到 RGB 转换
- DIP - 抽样的概念
- DIP - 像素分辨率
- DIP - 缩放的概念
- DIP - 缩放方法
- DIP - 空间分辨率
- DIP - 每英寸的像素点和线数
- DIP - 灰度分辨率
- DIP - 量化的概念
- DIP - ISO 偏好曲线
- DIP - 抖动的概念
- DIP - 直方图介绍
- DIP - 亮度和对比度
- DIP - 图像转换
- DIP - 直方图滑动
- DIP - 直方图拉伸
- DIP - 概率导论
- DIP - 直方图均衡
- DIP - 灰度级变换
- DIP - 卷积的概念
- DIP - 掩模的概念
- DIP - 模糊的概念
- DIP - 边缘检测的概念
- DIP - Prewitt 操作员
- DIP - 索贝尔算子
- DIP - 罗宾逊指南针面罩
- DIP - Krisch 指南针掩模
- DIP - 拉普拉斯算子
- DIP - 频域分析
- DIP - 傅里叶级数和变换
- DIP——卷积定理
- DIP - 高通滤波器与低通滤波器
- DIP - 色彩空间简介
- DIP - JPEG 压缩
- DIP - 光学字符识别
- DIP - 计算机视觉和图形
- DIP 有用资源
- DIP - 快速指南
- DIP - 有用的资源
- DIP - 讨论
索贝尔算子
Sobel 算子与 Prewitt 算子非常相似。它也是一个衍生掩模,用于边缘检测。与 Prewitt 算子一样,sobel 算子也用于检测图像中的两种边缘:
- 垂直方向
- 水平方向
与 Prewitt 算子的区别
主要区别在于,在索贝尔算子中,掩模的系数不是固定的,可以根据我们的要求进行调整,除非它们不违反导数掩模的任何性质。
以下是Sobel算子的垂直Mask:
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |
该掩模的工作原理与 Prewitt 算子垂直掩模完全相同。只有一个区别是第一列和第三列的中心有“2”和“-2”值。当应用于图像时,此蒙版将突出显示垂直边缘。
怎么运行的
当我们在图像上应用此蒙版时,它会突出垂直边缘。它的工作原理就像一阶导数一样,计算边缘区域中像素强度的差异。
由于中心列为零,因此它不包括图像的原始值,而是计算该边缘周围左右像素值的差值。第一列和第三列的中心值分别为 2 和 -2。
这为边缘区域周围的像素值赋予了更多的权重年龄。这增加了边缘强度,并且与原始图像相比得到增强。
以下是 Sobel 算子的水平 Mask
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |
上面的掩码会在水平方向找到边缘,这是因为零列在水平方向。当您将此蒙版卷积到图像上时,它会突出图像中的水平边缘。它之间唯一的区别是它有 2 和 -2 作为第一行和第三行的中心元素。
怎么运行的
该蒙版将突出图像中的水平边缘。它也按照上述掩模的原理工作,并计算特定边缘的像素强度之间的差异。由于掩模的中心行由零组成,因此它不包括图像中边缘的原始值,而是计算特定边缘的上方和下方像素强度的差异。从而增加强度的突然变化并使边缘更加明显。
现在是时候看看这些面具的实际效果了:
示例图片
以下是一张示例图片,我们将在其中一次应用上述两个蒙版。
应用垂直蒙版后
在上面的样本图像上应用垂直掩模后,将获得以下图像。
应用水平蒙版后
在上面的示例图像上应用水平掩模后,将获得以下图像
比较
正如您所看到的,在我们应用垂直蒙版的第一张图片中,所有垂直边缘都比原始图像更明显。同样,在第二张图片中,我们应用了水平蒙版,结果所有水平边缘都是可见的。
通过这种方式,您可以看到我们可以检测图像中的水平和垂直边缘。另外,如果将 sobel 算子的结果与 Prewitt 算子进行比较,您会发现与 Prewitt 算子相比,sobel 算子找到了更多边缘或使边缘更明显。
这是因为在索贝尔算子中,我们为边缘周围的像素强度分配了更多的权重。
对面罩施加更多重量
现在我们还可以看到,如果我们对蒙版施加更多的权重,它就会为我们获得更多的边缘。另外,正如教程开头提到的,sobel 算子没有固定系数,所以这里是另一个加权算子
-1 | 0 | 1 |
-5 | 0 | 5 |
-1 | 0 | 1 |
如果您可以将此掩模的结果与 Prewitt 垂直掩模的结果进行比较,很明显,与 Prewitt 掩模相比,该掩模将给出更多边缘,因为我们在掩模中分配了更多权重。