像素关系

  • 相邻像素
    • 四邻域
    • 四对角邻域
    • 八邻域
  • 定义邻接性的灰度值集合:$V$
    • 二值/非二值
    • $V$ 可以把灰度级化成两个等价类
  • 邻接性
    • 4 邻接:$p\in N_4(p)$ 且 $p,q$ 的灰度值都属于 $V$
    • 8 邻接:$p\in N_8(p)$ 且 $p,q$ 的灰度值都属于 $V$
    • $m$ 邻接(混合邻接):$p,q$ 的灰度值都属于 $V$
      • $q\in N_4(p)$
      • 或 $N_4(p)\wedge N_(q)$ 内无灰度值属于 $V$
      • 消除二义性
  • 连通性:通路
    • 起点终点相同:闭合通路
    • 连通集/连通分量
  • 区域:连通的像素子集 $R$
    • 邻接区域:两个连通的区域
    • 前景:$\bigcup R_k$
    • 背景:$(\bigcup R_k)^c$
  • 边界:区域中与背景 8 连通的点的集合
  • 边缘:导数值超过阈值的像素
    • 局部 概念
    • 二值图像:边界=边缘
  • 距离
    • 欧式 $D_r$
    • 曼哈顿距离 $D_4$
    • 棋盘距离 $D_8=\max(|x-s|,|y-t|)$

算术/逻辑/集合操作增强

主要以像素对像素为基础在两幅或多幅图像间进行

  • 算术操作
    • 加:$g(x,y)=f(x,y)+h(x,y)$
      • 定理:对$M$幅加性噪声图像进行平均,可以使图像的平方信噪比提高$M$倍
    • 减:$g(x,y)=f(x,y)-h(x,y)$
      • 找不同
      • 指纹抽取
      • 掩膜式 X 光成像法
      • 负值:规范化 $y=\frac{x-\min}{\max-\min}\times 255$
    • 乘:$g(x,y)=f(x,y)h(x,y)$
      • 掩膜运算
      • 归一化
  • 集合操作:灰度图像集合 $A$
    • 元素:$(x,y,z)$
      • 空间坐标,灰度
    • $A^c={(x,y,K-z)|(x,y,z)\in A}$
      • $K=2^k-1$ 为灰度级数
    • $A\cup B={\max\limits_z(a,b)|a\in A, b\in B}$
  • 逻辑操作:二值图像(前景 1,背景 0)
    • OR, AND, NOT, XOR

几何变换

空间变换算法

像素空间位置的变换

  • 保持图像中曲线特征的连续性(相邻输入产生相邻输出)
  • 仿射变换(Affine Transformation)
    • $x=t_{11}v+t_{21}w+t_{31}$
    • $y=t_{12}v+t_{22}w+t_{32}$
      • $t_{11},t_{22}$: 伸缩比例
      • $t_{12},t_{21}$: 倾斜程度
      • $t_{13},t_{31}$: 平移量
    • 矩阵形式:$[x,y,1]=[v,w,1]T,T=[t_{11},t_{12},0;t_{21},t_{22},0;t_{31},t_{32},1]$
      • $[x,y,1]=[v,w,1]T_1T_2\cdots$
      • 基本变换矩阵都可逆
    • 性质
      • 保持共线性
      • 保持距离比例:线的中心变化后依然是线的中心
基本仿射变换 $x$ $y$
恒等变换 $v$ $w$
伸缩变换 $c_xv$ $c_yw$
旋转变换 $v\cos\theta-w\sin\theta$ $v\sin\theta+w\cos\theta$
平移变换 $v+t_x$ $w+t_y$
(水平)倾斜变换 $v$ $s_hv+w$
(垂直)倾斜变换 $v+s_vw$ $w$
  • 前向映射
    • 输入图像变换后为非整数点坐标
    • 灰度值按一定权重分配给周围像素
    • 输出图像每点都需要遍历所有输入图像,效率较低
  • 反向映射
    • 对于输出图像每点,计算出其在输入图像的位置
    • 在输入图像中用插值计算出该点灰度值
    • 使用灰度内插算法,效果较好

图像配准

  • 匹配点

$$P=\begin{bmatrix}v_0&w_0&1\newline v_1&w_1&1\newline \vdots&\vdots&\vdots\newline v_{n-1}&w_{n-1}&1\end{bmatrix},Q=\begin{bmatrix}x_0&y_0&1\newline x_1&y_1&1\newline \vdots&\vdots&\vdots\newline x_{n-1}&y_{n-1}&1\end{bmatrix}$$

  • 最优仿射变换:$Q=PT$
    • 最小二乘 $\min\limits_T\lVert Q-PT\rVert_F^2$
    • $T=(P^TP)^{-1}P^TQ$
  • 双线性近似
    • $x=c_1v+c_2w+c_3vw+c_4$
    • $y=c_5v+c_6w+c_7vw+c_8$
    • 4 对约束点,求解方程
    • 增加约束点:将原图分成多个四边形
  • 几何校正:测试靶

灰度内插算法

确定变换中图像的像素灰度级

  • 最近邻内插
  • 线性内插:$f(x)=\frac{x_2-x}{x_2-x_1}f(x_1)+\frac{x_1-x}{x_1-x_2}f(x_2)$
  • 双线性内插
    • $Q_{11}Q_{12}\rightarrow R_1,Q_{21}Q_{22}\rightarrow R_2,R_1R_2\rightarrow P$
    • $4$ 个最近点求解方程组:$f(x,y)\approx a_0+a_1x+a_2y+a_3xy$
  • 双三次内插
    • $4$ 个最邻近点求解方程组:$f,\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f^2}{\partial x\partial y}$ 每点建立四个方程求解
    • $16$ 个最近点求解方程组:$f (x,y)=\sum_{i=0}^3\sum_{j=0}^3a_{ij}x^iy^j$

灰度变换

单像素操作,邻域大小为 1 的空间滤波 $s=T(r)$

  • 变换效果
    • 对比度:做 $y=x,x=\frac{L}{2}$,前半减小越多,后半增大越多,对比度越大
    • 拉伸与压缩:做 $y=t$,比较变换前后范围
    • 细节增加:图片主体偏暗,则拉伸低灰度值增加细节
函数 表达式
线性 $s=kr+b$
反转 $s=L-1-r,L=2^b$ 凸显白色灰色
对数 $s=c\log(1+r)$ 低灰度拉伸,高灰度压缩
反对数 $s=10^{cr}-1$
幂律 $s=cr^\gamma$ $\gamma<1$:低灰度拉伸,高灰度压缩
对比拉伸变换 分段单调递增
阈值处理 $s=[r<T]$
灰度级分层 $s=T[A<r<B]+b$
$s=T[A<r<B]+(kr+b)[o.w.]$
比特平面分层 $s=r_Lr_{L-1}\cdots r_{L-i}$ 高阶比特平面包含视觉上重要的数据,低比特位贡献精细细节,图像压缩
直方图均衡化 $T(r_k)=\frac{L-1}{MN}\sum_{j=0}^kn_j$

直方图

  • 直方图描述
    • 横坐标 $D$:灰度级
    • 纵坐标 $H(D)$:出现的频率
    • 阈值面积函数: $A(D)=\int_D^\infty H(d)\text{d}d$
    • 概率密度函数 PDF:$P(D)=\frac{1}{A_0}H(D)$
    • 累积分布函数 CDF: $F(D)=\int_0^Dp(u)du$
  • 离散直方图
    • $p_r(r_k)=\frac{n_k}{MN}$
    • $H(D)=A(D)-A(D+1)$
  • 直方图应用
    • 图像快速检测:灰度值运用是否合理
    • 分隔前景背景:双峰直方图
    • 面积计算:$\int_{D_1}^\infty H(D)dD$
  • 灰度变换下的直方图变化
    • 假设单调连续灰度变换函数 $s=T(r)$
    • 输入密度 $p_r(r)$
    • 输出密度 $p_s(s)=p_r(r)|\frac{dr}{ds}|=p_r(T^{-1}(s))\frac{1}{|T’(T^{-1}(s))|}$
  • 直方图均衡化
    • 变换函数要求
      • 属于区间 $[0,L-1]$
      • 单调递增
      • 变换为均匀分布
    • $T(r)=(L-1)\int_0^rp_r(w)dw$
    • $T(r_k)=(L-1)\sum_{j=0}^kp_r(r_j)=\frac{L-1}{MN}\sum_{j=0}^kn_j$
  • 直方图匹配: A->B->C
    • 输入:$p_r(r)$,直方图均衡化变换 $s=T(r)$
    • 指定:$p_z(z)$,直方图均衡化变换 $s=G(r)$
    • $z=G^{-1}(s)=G^{-1}(T(r))$
  • 局部直方图均衡化
    • 定义邻域,不断平移中心位置,在每个中心处计算直方图,进行直方图均衡化或匹配
  • 直方图统计量用于局部图像增强
    • $n$阶矩:$\mu_n(r)=\sum_{i=0}^{L-1}(r_i-m)^np(r_i)$
      • 2 阶矩:方差 $\sigma^2$
    • 全局均值:$m_G$
    • 全局方差:$\sigma_G$
    • 局部均值:$m_{S_{xy}}$
    • 局部方差:$\sigma^2_{S_{xy}}$

$$ g(x,y)=\begin{cases} Ef(x,y) & m_{S_{xy}}\leq k_0m_G,k_1\sigma_G\leq\sigma_{S_{xy}}\leq k_2\sigma_{G}\newline f(x,y) & o.w. \end{cases} $$

空间滤波

  • 滤波器:$g(x,y)=T(f(x,y))$,$T$为操作算子,定义在$(x,y)$的邻域上
  • 线性滤波器
    • $m\times n$ 的模板
      • 最小 $3\times 3$,一般为奇数
      • 边界:忽略/填充
    • 补零->计算->滑动->裁剪
    • Correlation 相关:平移滤波器模板,计算每个位置乘积直和
      • 应用到离散单位脉冲后产生模板的旋转 180 度后的结果
      • $w(x,y)\star f(x,y)=\sum_{s=-a}^a\sum_{t=-b}^bw(s,t)f(x+s,y+t)$
      • 归一化后寻找匹配:$R=\vec w^T\vec z$
    • Convolution 卷积:相关中滤波器旋转 180 度
      • $w(x,y)\star f(x,y)=\sum_{s=-a}^a\sum_{t=-b}^bw(s,t)f(x-s,y-t)$
  • 离散微分
    • $\frac{\partial f}{\partial x}=f(x+1) - f(x)$
      • 恒定区域:零
      • 突变起点:非零
      • 突变终点:零
      • 斜坡:非零
    • $\frac{\partial^2 f}{\partial x^2}=f(x+1) + f(x-1) - 2f(x)$
      • 恒定区域:零
      • 突变起点:非零
      • 突变终点:非零
      • 斜坡:零
    • 各向同性滤波器:旋转不变性
    • 拉普拉斯算子:$\nabla^2f=\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}$
      • 离散拉普拉斯算子
        • $\frac{\partial^2 f}{\partial x^2}=f(x+1, y) + f(x-1, y) - 2f(x,y)$
        • $\frac{\partial^2 f}{\partial y^2}=f(x, y+1) + f(x, y-1) - 2f(x,y)$
      • 标准形式:$[0,1,0;1,-4,1;0,1,0]$
      • 对角形式:$[1,1,1;1,-8,1;1,1,1]$
    • 梯度:$\nabla f$
      • $M(x,y)=|\nabla f|=\sqrt{g_x^2+g_y^2}\approx |g_x|+|g_y|$
      • 罗伯特交叉梯度算子
        • $$g_x=\begin{bmatrix}-1&0\newline 0&1\end{bmatrix}$$
        • $$g_y=\begin{bmatrix}0&-1\newline 1&0\end{bmatrix}$$
      • Sobel 算子
        • $$g_x=\begin{bmatrix}-1&-2&-1\newline 0&0&0\newline 1&2&1\end{bmatrix}$$
        • $$g_y=\begin{bmatrix}-1&0&1\newline -2&0&2\newline -1&0&1\end{bmatrix}$$
      • 阈值检测边缘
滤波器 模板
平滑线性 $\frac{1}{9}\sum_{i}z_i$,先求和,再归一化 边缘模糊,小物体缺失,边界明显
加权线性 $h(x,y)=e^{-\frac{x^2+y^2}{2\sigma^2}}$ 或其它权重,除模板之和 降低模糊
非线性平滑 排序,中值,最大值,最小值
锐化 $g(x,y)=f(x,y)+c[\nabla^2f(x,y)]$ $c>0$ 若模板中心为正
非锐化掩蔽 $g_{\text{mask}(x,y)}=f(x,y)-\overline{f}(x,y)$ $g(x,y)=f(x,y)+k\star g_{\text{mask}}(x,y)]$ $k=1$
高提升滤波 $k>1$
梯度边缘检测 $M(x,y)$

Edge Preserving Filters 保边滤波器

  • 双边滤波器(Bilateral)
    • 高斯平滑滤波:$g_1(i,j)=\frac{\sum_{k,l}f(k,l)*d(i,j,k,l)}{\sum_{k,l}d(i,j,k,l)}$
      • $d(i,j,k,l)= e^{-\frac{(i-k)^2+(j-l)^2}{2\sigma_d^2}}$
    • 值域高斯滤波:$g_2(i,j)=\frac{\sum_{k,l}f(k,l)*r(i,j,k,l)}{\sum_{k,l}r(i,j,k,l)}$
      • $r(i,j,k,l)=e^{-\frac{\lVert f(i,j)-f(k,l)\rVert^2}{2\sigma_r^2}}$
      • 两个像素物理距离越大则权值越小,反之则权值越大
    • 双边滤波器:$\frac{\sum_{k,l}f(k,l)*w(i,j,k,l)}{\sum_{k,l}w(i,j,k,l)}$
      • $w(i,j,k,l)=e^{-\frac{(i-k)^2+(j-l)^2}{2\sigma_d^2}-\frac{\lVert f(i,j)-f(k,l)\rVert^2}{2\sigma_r^2}}$
  • 引导滤波器:快速双边滤波器
  • 递归域变换滤波器