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

本文最后更新于:2022年8月5日 晚上

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

图像边缘

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

成因主要如下:

  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)|
$$

  • 转化为模板即为
$$ R_{x}=\left[\begin{array}{cc}1 & 0 \\ 0 & -1\end{array}\right], R_{y}=\left[\begin{array}{cc}0 & -1 \\ 1 & 0\end{array}\right] $$

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

Sobel算子

  • 中心差分 , 对于水平线和垂直线的四个点权重高,模板为:
$$ S_{x}=\left[\begin{array}{lll} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{array}\right], S_{y}=\left[\begin{array}{ccc} 1 & 2 & 1 \\ 0 & 0 & 0 \\ -1 & -2 & -1 \end{array}\right] $$

在实际运用中较多

Prewitt算子

  • 模板为
$$ P_{x}=\left[\begin{array}{lll} -1 & 0 & 1 \\ -1 & 0 & 1 \\ -1 & 0 & 1 \end{array}\right], P_{y}=\left[\begin{array}{ccc} 1 & 1 & 1 \\ 0 & 0 & 0 \\ -1 & -1 & -1 \end{array}\right] $$

Kirsch算子

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

$$ K_{N}=\left[\begin{array}{ccc}5 & 5 & 5 \\ -3 & 0 & 3 \\ -3 & -3 & -3\end{array}\right], \mathrm{K}_{N \mathbb{X}}=\left[\begin{array}{ccc}-3 & 5 & 5 \\ -3 & 0 & 5 \\ -3 & -3 & -3\end{array}\right] $$ $$ K_{\bar{I}}=\left[\begin{array}{ccc}-3 & -3 & 5 \\ -3 & 0 & 5 \\ -3 & -3 & 5\end{array}\right], \mathrm{K}_{S B}=\left[\begin{array}{ccc}-3 & -3 & -3 \\ -3 & 0 & 5 \\ -3 & 5 & 5\end{array}\right] $$ $$ K_{s}=\left[\begin{array}{ccc}-3 & -3 & -3 \\ -3 & 0 & -3 \\ 5 & 5 & 5\end{array}\right], \mathrm{K}_{\text {SW }}=\left[\begin{array}{ccc}-3 & -3 & -3 \\ 5 & 0 & -3 \\ 5 & 5 & -3\end{array}\right] $$ $$ K_{W}=\left[\begin{array}{ccc}5 & -3 & -3 \\ 5 & 0 & -3 \\ 5 & -3 & -3\end{array}\right], \mathrm{K}_{N W}=\left[\begin{array}{ccc}5 & 5 & -3 \\ 5 & 0 & -3 \\ -3 & -3 & -3\end{array}\right] $$

Robinson算子

  • 规则同上,也是8个模板
$$ R_{N}=\left[\begin{array}{ccc}1 & 2 & 1 \\ 0 & 0 & 0 \\ -1 & -2 & 1\end{array}\right], \mathrm{R}_{N \mathbb{}}=\left[\begin{array}{ccc}0 & 1 & 2 \\ -1 & 0 & 1 \\ -2 & -1 & 0\end{array}\right] $$ $$ R_{\bar{g}}=\left[\begin{array}{ccc}-1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1\end{array}\right], \mathrm{R}_{S \mathbb{X}}=\left[\begin{array}{ccc}-2 & -1 & 0 \\ -1 & 0 & 1 \\ 0 & 1 & 2\end{array}\right] $$ $$ R_{s}=\left[\begin{array}{ccc}-1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 5\end{array}\right], \mathrm{R}_{S W}=\left[\begin{array}{ccc}0 & -1 & -2 \\ 1 & 0 & -1 \\ 2 & 1 & 0\end{array}\right] $$ $$ R_{W}=\left[\begin{array}{ccc}1 & 0 & -1 \\ 2 & 0 & -2 \\ 1 & 0 & -1\end{array}\right], \mathrm{R}_{N W}=\left[\begin{array}{ccc}2 & 1 & 0 \\ 1 & 0 & -1 \\ 0 & -1 & -2\end{array}\right] $$

参考资料


图像边缘检测——一阶微分算子 Roberts、Sobel、Prewitt、Kirsch、Robinson
https://www.zywvvd.com/notes/study/image-processing/image-operators/image-operators/
作者
Yiwei Zhang
发布于
2021年6月2日
许可协议