OpenCV图像梯度(Sobel和Scharr)
这篇博客将介绍图像渐变以及如何使用OpenCV的cv2.Sobel计算Sobel渐变和Scharr渐变。
1 图像梯度是什么?
图像梯度是许多计算机视觉和图像处理程序的基本组成部分。
- 我们使用梯度来检测图像中的边缘,这使得我们能够在图像中找到物体的轮廓和边缘线;
- 我们使用它们作为通过特征提取量化图像的输入-事实上,非常成功和著名的图像描述符,如定向梯度直方图和SIFT是建立在图像梯度表示的基础上的;
- 梯度图像甚至被用来构造显著性图,突出图像的主题;
2 图像梯度的用途
图像梯度的主要应用在于边缘检测。边缘检测是在图像中寻找轮廓/边缘的过程,它揭示了图像中物体的结构信息。因此,边缘可以对应于:
- 图像中对象的边界
- 图像中阴影或光照条件的边界
- 对象中“局部”的边界
图像梯度定义为图像强度的方向变化。
或者更简单地说,在输入(灰度)图像的每个像素处,梯度测量给定方向上像素强度的变化。通过估计方向或方向以及大小(即方向的变化有多大),能够检测图像中看起来像边缘的区域。
梯度幅度(gradient magnitudeÿ