边缘检测
- 对于二维图像,边缘一般在一阶微分的绝对值最大处,或者说二阶微分为0处,即:
∇ 2 f ( x , y ) = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 = 0 {\nabla}^2f(x,y)={ { {\partial}^2f}\over{\partial {x}^2}}+{ { {\partial}^2f}\over{\partial {y}^2}}=0 ∇2f(x,y)=∂x2∂2f+∂y2∂2f=0
边缘发生在颜色突变的地方,因此是颜色梯度绝对值最大处。
- 存储于计算机内的二维图像本质是一个二维矩阵(对于彩色图片是RGB三个二维矩阵),可以通过卷积算子计算并进行边缘检测。
构建边缘检测算子思路:让该算子内所有数值求和为0。这样就可以在非边缘处(像素值变化不大的区域)与边缘算子求卷积后基本为0;在边缘处(像素值变化很大的区域)与边缘检测算子求卷积后得到一个绝对值较大的值。
- 常见的边缘检测算子
①Robert算子
{ − 1 1 } \left\{ \begin{matrix} -1 & \\ & 1 \\ \end{matrix} \right\} { −11}
或
{ − 1 1 } \left\{ \begin{matrix} & -1 \\ 1 & \\ \end{matrix} \right\} { 1−1}
②Prewitt算子
{ − 1 − 1 − 1 0 0 0 1 1 1 } \left\{ \begin{matrix} -1&-1 & -1 \\ 0 & 0&0\\ 1 & 1&1 \\ \end{matrix} \right\} ⎩
⎨
⎧−101−101−101⎭
⎬
⎫
或
{ − 1 0 1 − 1 0 1 − 1 0 1 } \left\{ \begin{matrix} -1&0 & 1 \\ -1 & 0&1\\ -1 & 0&1 \\ \end{matrix} \right\} ⎩
⎨
⎧−1−1−1000111⎭
⎬
⎫
③Sobel算子
{ − 1 − 2 − 1 0 0 0 1 2 1 } \left\{ \begin{matrix} -1&-2 & -1 \\ 0 & 0&0\\ 1 &2&1 \\ \end{matrix} \right\} ⎩
⎨
⎧−101−202−101⎭
⎬
⎫
或
{ − 1 0 1 − 2 0 2 − 1 0 1 } \left\{ \begin{matrix} -1&0 & 1 \\ -2 & 0&2\\ -1 & 0&1 \\ \end{matrix} \right\} ⎩
⎨
⎧−1−2−1000121⎭
⎬
⎫
④Laplace算子
{ 1 1 − 4 1 1 } \left\{ \begin{matrix} &1 & \\ 1 & -4&1\\ & 1&\\ \end{matrix} \right\} ⎩
⎨
⎧11−411⎭
⎬
⎫
图像分割
基于阈值的分割方法
通过设定不同的特征阈值,把图像像素点分为占据不同灰度级范围的图。这种方法的关键点是预先确定好特征阈值。
基于区域的分割方法
有两种方法:一种是区域生长,从单个像素出发,逐步合并以形成所需要的分割区域;另一种是区域分裂合并,从全局出发,逐步切割至所需的分割区域。
基于边缘检测的分割方法
使用上述边缘检测算子识别边缘进行分割。存在两个问题:1、不能保证边缘的连续性和封闭性;2、在高细节区存在大量的碎片边缘。