Sobel、Scharr图像梯度算法
相关概念
- 梯度:梯度值是由某点在各个方向的偏导数组合而成的代表在该点变化最大的方向。原图像某点梯度值可对原图像使用线性变换加以表示。
- Sobel 算子是一个离散微分算子 (discrete differentiation operator)。 它用来计算图像灰度函数的近似梯度。
- 边缘:灰度或结构等信息的突变处,边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。
- 图像深度是指存储每个像素所用的位数。
- 图像的强度:image intensity表示单通道图像像素的强度(值的大小),在灰度图像中,强度是图像的灰度。
- 内核:卷积核是一个值矩阵,用于指定像素的邻域在最终图像中如何影响该像素的状态
一、操作
将模板的中心和图像上的某个像素重合,并将该像素周围的点与模板上的系数相乘
二、原理
通过卷积方法,在图像两个方向上检测灰度值突变,实际为某方向求导运算;人为提供阈值,大于该阈值时,即认为是边缘。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
三、相关参数
Sobel内核可能产生比较明显的误差,此时,可以使用 Scharr 函数,该函数仅作用于大小为3的内核。具有跟sobel一样的速度,但结果更精确,其内核为:我们一般直接称scharr为滤波器,而不是算子:Scharr滤波器的滤波系数 -3 0 3 -10 0 10 -3 0 3 -3 -10 -3 0 0 0 3 10 3。该处使用的url网络请求的数据。