机器视觉-边缘检测与图像分割原理
边缘检测
- 对于二维图像,边缘一般在一阶微分的绝对值最大处,或者说二阶微分为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、在高细节区存在大量的碎片边缘。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐




所有评论(0)