像素关系
- 相邻像素
- 四邻域
- 四对角邻域
- 八邻域
- 定义邻接性的灰度值集合:$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)$
- 掩膜运算
- 除
- 归一化
- 加:$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}$
- 元素:$(x,y,z)$
- 逻辑操作:二值图像(前景 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}}$
- $n$阶矩:$\mu_n(r)=\sum_{i=0}^{L-1}(r_i-m)^np(r_i)$
$$ 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)$
- $m\times n$ 的模板
- 离散微分
- $\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{\partial f}{\partial x}=f(x+1) - f(x)$
滤波器 | 模板 | |
---|---|---|
平滑线性 | $\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}}$
- 高斯平滑滤波:$g_1(i,j)=\frac{\sum_{k,l}f(k,l)*d(i,j,k,l)}{\sum_{k,l}d(i,j,k,l)}$
- 引导滤波器:快速双边滤波器
- 递归域变换滤波器