基础知识
- $R$: 图像所占区域
- 图像分割:$R=\cup_{i=1}^n R_i$
- $R_i$ 连通
- $R_i\cap R_j=\emptyset$
- $Q$: 用于划分区域的函数
- $Q(R_i)=\text{T}$
- $Q(R_i\cup R_j)=\text{F}$
- 分割依据
- 灰度的不连续性
- 灰度的相似性
- 边缘:连通的边缘像素的集合
- 边缘像素:灰度发生剧烈变化
- 线:特殊的边缘,两侧的灰度值都很大或小
- 点:长宽只有一个像素的线
- 孤立点检测
- 拉普拉斯算子
- 判断响应幅度是否大于阈值
- 线检测
- 拉普拉斯算子
- 双线效应
- 检测特定方向的线
- 边缘模型
- 台阶边缘 Step Edge:1个像素距离上发生灰度级理想过渡,理想边缘
- 斜坡边缘 Ramp Edge
- 屋顶边缘 Roof Edge: 穿过区域的线
- 存在噪声的边缘
- 视觉上噪声并不明显
- 噪声对导数影响很大
- 二阶导更敏感
边缘检测
- 基本边缘检测
- 梯度:最大变化率方向,边缘方向与梯度正交
- 大小:$M(x,y)=\sqrt{g_x^2+g_y^2}\approx|g_x|+|g_y|$ (边缘图)
- 方向:$\alpha(x,y)=\tan^{-1}(\frac{g_y}{g_x})$
- 梯度算子
- 罗伯特交叉梯度算子
- Prewitt 算子
- Sobel 算子
- 梯度:最大变化率方向,边缘方向与梯度正交
- 高级边缘检测
- Marr-Hildreth 边缘检测器
- $\nabla^2=\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2}$
- $G(x,y)=e^{-\frac{x^2+y^2}{2\sigma^2}}$
- LoG(高斯的拉普拉斯):$\nabla^2 G(x,y)=[\frac{x^2+y^2-2\sigma^2}{\sigma^4}]e^{-\frac{x^2+y^2}{2\sigma^2}}$
- 零交叉:$x^2+y^2=2\sigma^2$
- 生成不同尺寸的模板
- 对 $G(x,y)$ 进行采样,得到 $n\times n$ 的模板
- 与拉普拉斯模板卷积
- 算法
- 用 $n\times n$ 的高斯低通滤波器平滑图像
- 计算上图的拉普拉斯
- 寻找零交叉:检查某像素两个相对邻域像素的符号,符号相反且差异大于某阈值
- Canny 边缘检测器
- 高斯函数平滑输入图像
- 计算图像梯度的大小与角度
- 非最大抑制:把梯度生成的粗边变细
- 四种边缘:水平,垂直,+45,-45
- 根据梯度方向确定边缘方向 $d_k$
- 如果 $M(x,y)$ 的值比 $(x,y)$ 在 $d_k$ 方向任意邻居小则对其抑制
- 滞后阈值:减少伪边缘点
- 低阈值:$T_L,g_{\text{NL}}(x,y)=g(x,y)\geq T_H$
- 高阈值:$T_H,g_{\text{NH}}(x,y)=g(x,y)\geq T_L$
- 比值:2:1 或 3:1
- $g_{\text{NL}}(x,y)=g_{\text{NL}}(x,y)-g_{\text{NH}}(x,y)$
- 连通性分析
- 遍历 $g_{\text{NH}}$ 中每一个点 $p$,保留 $g_{\text{NL}}$ 中和 $p$ 连通的点
- 去掉 $g_{\text{NL}}$ 剩余的点
- 合并 $g_{\text{NH}}$ 和 $g_{\text{NL}}$
- Marr-Hildreth 边缘检测器
边缘连接
将边缘像素组合成有意义的边缘或区域边界
- 局部处理
- 分析每个点 $(x,y)$ 邻域内像素的特点
- 依据某准则将相似的点连接
- 梯度大小:$|M(s,t)-M(x,y)|\leq E$
- 梯度方向:$|\alpha(s,t)-\alpha(x,y)|\leq A$
- 简化算法:$g(x,y)=[M(x,y)>T_M,\alpha(x,y)=A+T_A]$
- 区域处理
- 函数近似:拟合一条二维曲线
- 多边形近似
- $P$:已排序,不重复的二值图像中的序列,起始点 $A,B$
- $T$: 阈值
- 空堆栈:OPEN, CLOSED
- 闭合曲线:将 $B$ 放入 OPEN,CLOSED 中,$A$ 放入 OPEN 中
- 开放曲线:将 $B$ 放入 CLOSED 中,$A$ 放入 OPEN 中
- 计算 CLOSED 中最后一个顶点到 OPEN 中最后一个顶点的线的参数
- 寻找与上述直线距离最大的点,若 $D>T$ 则将其放入 OPEN 中,重复上一步
- 否则从 OPEN 中弹出顶点到 CLOSED 中,如开非空则重复
- 否则 CLOSED 中的顶点就是多项式顶点
- 全局处理
- 霍夫变换
- 直线方程:$y_i=ax_i+b$
- ab-平面:$b=-ax_i+y_i$
- xy-平面:$x\cos\theta+y\sin\theta=\rho$
- $\rho\theta$: $\rho=x\cos\theta+y\sin\theta$
- 划分累加单元,统计每个单元内曲线的数目
- 霍夫变换
边缘追踪
- Square Tracing Algorithm
- Moore-Neighbor Tracing
- Same to Radial Sweep
- Jacob’s stopping criterion
- Stop after visiting the start pixel n times, where n is at least 2, OR
- Stop after entering the start pixel a second time in the same manner you entered it initially.