图像边缘检测——一阶微分算子 Roberts、Sobel、Prewitt、Kirsch、Robinson

2022-08-05 15:20:57 浏览数 (1)

边缘检测指的是从图像中检测边缘点和边缘段,并且描述边缘方向的过程。本文记录常用边缘检测一阶微分算子。

图像边缘

图像边缘一般指图像的灰度变化率最大的位置。

成因主要如下:

  1. 图像灰度在表面法向变化不连续;
  2. 图像中物体在空间上的深度不一致;
  3. 在光滑的表面上颜色不一致;
  4. 图像中物体的光影

边缘检测

  • 边缘检测指的是从图像中检测边缘点和边缘段,并且描述边缘方向的过程。图像可以看成二元函数f(x,y),(x,y)是pixel的位置,f(x,y)是该处的灰度值,这样图像就可以想象成是一个曲面。看作曲面以后,就可以用数学的方法来处理了。边缘即曲面上变化最剧烈的位置,这个位置也是曲面的局部极值点的位置,求极值大家都知道,可以用导数来求。
一阶微分算子检测边缘
  • 图像的梯度场(相邻像素差值):
nabla mathrm{f}(mathrm{x}, mathrm{y})=left(frac{partial mathrm{f}}{partial x}, frac{partial mathrm{f}}{partial y}right)
  • 梯度的模值为:
|nabla mathrm{f}(mathrm{x}, mathrm{y})|=sqrt{left(frac{partial mathrm{f}}{partial x}right)^{2} left(frac{partial mathrm{f}}{partial y}right)^{2}}
  • 梯度方向为:
angle nabla mathrm{f}(mathrm{x}, mathrm{y})=arctan left(frac{partial mathrm{f}}{partial x}right) /left(frac{partial mathrm{f}}{partial x}right)

由此我们得到,图像某一点(x,y)变化最快的方向是梯度的方向,变化最慢的方向是与梯度垂直的方向。

一阶算子

Roberts算子
  • (mathrm{i} 1 / 2, j 1 / 2) 处差分
|nabla mathrm{f}(1, j)|=|f(mathrm{i}, j)-mathrm{f}(mathrm{i} 1, j 1)| |f(1 1, j)-mathrm{f}(mathrm{i}, mathrm{j} 1)|
  • 转化为模板即为

对于所有的微分算子而言,若只对|Rxf|进行阈值判决,则选择的是与x方向垂直的边缘;若只对|Ryf|进行阈值判决,则选择的是与y方向垂直的边缘;若选择的是对|Rxf| |Ryf| 进行判决, 则获得一般方向的边缘。

Sobel算子
  • 中心差分 , 对于水平线和垂直线的四个点权重高,模板为:

在实际运用中较多

Prewitt算子
  • 模板为

Kirsch算子

8个模板,对应8个方向,最大值被选出

Robinson算子
  • 规则同上,也是8个模板

参考资料

  • https://blog.csdn.net/u014485485/article/details/78339420

0 人点赞