基本概念
图像的表示:
- 二维离散函数:$I=f(x, y)$
- $x, y$ 表示图像像素的坐标
- 函数值$f$表示在坐标$(x,y)$处像素的亮度值
- 二维矩阵:$A[m, n]$
- $m, n$ 表示图象的宽和高
- 矩阵元素$a(i,j)$表示图像在第 $i$ 行,第 $j$ 列的像素值
图像质量:
- 对比度:反应图像中灰度方差的大小
- 对比度 = 最大灰度值/最小灰度值
- 传统客观评价方法:
- 通过计算恢复图像偏离原始图像的误差来衡量恢复图像的质量
- 均方误差(MSE): $MSE = \frac1{NM} \sum^N_{i=1}\sum^M_{j=1} (f_{ij}-f’_{ij})^2$
- 峰值信噪比(PSNR): $PSNR = 10log_{10} \frac{L^2}{MSE}$
- 其中N、M分别是x方向、y方向图像像素点的个数, $f_{ij}$和$f’_{ij}$分别是原始图像和测试图像在$(i,j)$点上的取值, $L$是图像中灰度取值的范围,对8比特的灰度图像而言,$L=255$
图像的颜色:
- 常用的颜色模型
- RGB(红、绿、蓝)
- CMYK(青、品红、黄、黑) (Cyan, Magenta, Yellow, Black)
- 用于印刷、绘画等
- HSI(色调、色饱和度、亮度) (Hue, Saturation, Intensity)
- 用于调整颜色分量
- H、S、I 可以分开处理而且相互独立
- 颜色模型之间的转换
- RGB to CMY:
- $C=1-R; Y=1-G; M=1-B$
- HSI to RGB:
- $0\le H\le 120^\circ$
- $B=I(1-S)$
- $R = I[1+\frac{S\cdot cosH}{cos(60^\circ -H)}]$
- $G=3I-(R+B)$
- RGB to HSI:
- $\theta = cos^{-1}{\frac{[(R-G)+(R-B)]/2}{\sqrt{(R-G)^2+(R-B)(G-B)}}}$
- $H = \left\lbrace \begin{matrix} \theta & B \le G \\ 360-\theta & B>G \end{matrix} \right.$
- $S=1-\frac{3\cdot min(R,G,B)}{R+G+B}$
- $I=(R+G+B)/3$
- RGB to CMY:
- 颜色模型的应用 — 利用 HIS 模型特性消除红眼
- “红眼”—闪光灯照相的结果
- 在HIS空间可定义红眼为
- $-\pi/4<$色度$<\pi/4$
- 色饱和度>0.3
- 算法:
- 在脸部的特定区域进行色空间转换RGB→HSI测试每一点像素
- 如果:$-\pi/4<H<\pi/4$ and $S>0.3$ 则该像素为红眼像素,使其成为灰色:S=0
- 灰度至RGB的转换 (伪彩色显示):
- $R = a |sin(bx)|$
$G = a |sin(bx+c)|$
$B = a |sin(bx+2c)|$
where x = gray level intensity, $a = 255, b=2*\pi/255, c = \pi/5$
- $R = a |sin(bx)|$
基本运算
像素级运算
点运算
- 线性点运算:
- $D_{out} = f(D_{in}) = aD_{in} + b$
- $I_{out}(x,y) =a*I_{in}(x,y) + b$
- a=1,b=0: 恒等
- a<0: 黑白反转
- |a|>1: 增加对比度
- |a|<1: 减小对比度
- b>0: 增加亮度
- b<0: 减小亮度
- 非线性点运算
- $f(I(x,y)) = I(x,y) + C\times I(x,y)\times (I(x,y)_m - I(x,y))$
- C>0: 增强中间部分亮度
- C<0: 减小中间部分亮度
- what is $I(x,y)_m$?
- $f(I(x,y)) = I(x,y) + C\times I(x,y)\times (I(x,y)_m - I(x,y))$
- 映射表点运算
- 点运算特点
- 点运算针对图像中的每一个像素灰度,独立地进行灰度值的改变
- 输出图像中每个像素点的灰度值,仅取决于相应输入像素点的值
- 点运算不改变图像内的空间关系
- 从像素到像素的操作
- 点运算可完全由灰度变换函数或灰度映射表确定
代数运算
- 加法运算:
- $C(x,y) = A(x,y)+B(x,y)$
- 应用:去除叠加性噪音,生成图像叠加效果
- 去除叠加性噪音:对 M 幅加性噪声图像进行平均,可以使图像的平方信噪比提高 M 倍。(噪声互不相关,且均值为0,多个噪声图像相加后可以降低噪声的影响)
- 图像叠加:$g(x,y) = \alpha f(x,y) + \beta h(x,y)$, 其中 $\alpha+\beta=1$
- 减法运算:
- $C(x,y) = A(x,y)-B(x,y)$
- 应用:去除不需要的叠加性图案(背景图像),检测同一场景两幅图像之间的变化
- 乘法运算:
- $C(x,y) = A(x,y)\times B(x,y)$
- 应用:图像的局部显示:用二值蒙版图像与原图像做乘法
逻辑运算
- 求反
- $g(x,y) = R-f(x,y)$, $R$ 为$f(x,y)$ 的灰度级
- 应用:获得一个图像的负像,获得一个子图像的补图像
- 异或
- $g(x,y) = f(x,y) \oplus h(x,y)$
- 应用:获得相交子图像
- 或
- 与
空域变换
在图像空间,对图像的形状、像素值等进行变化、映射等处理。
几何变换
- 改变图像的形状,大小,位置
- 二维图像几何变换的定义:
- 对于原始图像f(x,y),坐标变换函数 $x’ = a(x,y); y’ = b(x,y)$
- 唯一确定了几何变换:$g(x’,y’) = f(a(x,y), b(x,y))$, $g(x,y)$是目标图像
- 二维基本变换:多项式变换,透视变换
- 多项式变换:
- 基本公式:$x’=\sum_{i=0}^M\sum_{j=0}^N a_{ij}x_iy_j, y’=\sum_{i=0}^M\sum_{j=0}^N b_{ij}x_iy_j $
- 线性变换 - 多项式变换中的一阶变换:$x’=ax+by+e, y’=cx+dy+f$
- 原始图像与目标图像之间的坐标变换函数为线性函数,可以通过与之对应的线性矩阵变换来实现
- 齐次坐标表示法:用n+1维向量表示n维向量
- 仿射变换
- 二维图像的基本几何变换具有特征:
- 变换前图形上的每一点,在变换后的图形上都有一确定的对应点,如原来直线上的中点变换为新直线的中点
- 平行直线变换后仍保持平行,相交直线变换后仍相交
- 变换前直线上的线段比等于变换后对应的线段比
- 常见几何变换:
- 错切变换:
- 景物在平面上的非垂直投影效果。
- $x$方向错切:$x’=x+d_xy, y’=y$
- $y$方向错切:$x’=x, y’= y+d_yx$
- 伪仿射变换 — 双线性几何变换
- $x’=ax+by+gxy+e, y’=cx+dy+hxy+f$
- 特点:与xy平面上坐标轴平行的直线,变换为x’y’平面上的直线
- 与xy平面上坐标轴不平行的直线,变换为x’y’平面上的曲线
- 非线性几何变换:
- 在二维平面上, 实现图像几何形状的任意变换, 校正图像的几何失真
- 一般的,原始图像与目标图像之间,存在一一对应的特征点( tiepoints, GCPs)
- 需用高阶多项式进行近似描述, 通过原始图像与目标图像之间多个对应特征点(GCP点),可以确定多项式中的未知参数
- 多项式阶数与GCP数量的关系: $GCPs\ge \frac{(t+1)(t+2)}{2}$
- 透视变换:
- 将一个平面上的点P(x,y),以投影中心O为基准,投影成另一个平面上的点P’(x,y)
- 二维图像透视变换函数及其齐次坐标表示为: $x’=\frac{ax+by+e}{mx+ly+1}; y’=\frac{cx+dy+f}{mx+ly+1}$ (跟齐次矩阵的第三个矩阵有关,实现透视变换)
- 错切变换:
- 基本几何变换的特征
- 坐标空间的变化
- 范围发生变化
- 大小发生变化
- 像素值的变化
- 像素值不发生变化——位置改变
- 像素值发生变化——旋转、缩放、变形变换
- 坐标空间的变化
- 灰度插值
- 图像旋转之后,会出现许多的空洞点,对这些空洞点必须进行填充处理
- 最近邻插值法
- 选择最临近点像素灰度值
- 特点: 简单快速,灰度保真性好,误差较大,视觉特性较差,有马赛克效应
- 双线性插值(一阶插值)
- 在x, y两个方向上分别进行一次线性插值,根据距离确定权重
- 应用双曲抛物面方程:$f(x,y)=ax+by+cxy+d$
- 归一化坐标值:$0<x<1,0<y<1$, 可有$f(x,y)=[f(1,0)-f(0,0)]x+[f(0,1)-f(0,0)]y+[f(1,1)+f(0,0)-f(0,1)-f(1,0)]xy+f(0,0)$
- 注意:双线性插值的结果不是线性的,它是两个线性函数的积
- 需得到四个未知参数——利用四个已知点
- 特点: 计算中较为充分地考虑相邻各点的特征,具有灰度平滑过渡特点; 一般情况下可得到满意结果; 具有低通滤波特性,使图像轮廓模糊; 平滑作用使图像细节退化,尤其在放大时; 不连续性会产生不希望的结果
- 最佳插值函数:
- 在满足Nyquist条件下,从离散信号$x(nTs)$可恢复连续信号x(t) :$x(t) = \sum^{+\infty}_{i=-\infty}x(nT_s)sinc(\frac{\pi}{T_s}(t-nT_s))$
- 高阶插值:
- 如果将以上的sinc函数截断,仅取原点周围有限范围函数(-2,2)
- 同时利用三次多项式来近似理论上的最佳插值函数sinc(x)
- 由此形成常用的三次卷积插值算法,又称三次内插法,两次立方法(Cubic)。 CC插值法等。
- 三次卷积插值算法实现:利用待插值点周围的16个邻点像素值
- 三次卷积插值算法特点: 为满足二维Nyquist条件下,最佳重构公式的近似; 只有图像满足特定的条件,三次卷积插值算法才可获得最佳结果; 可使待求点的灰度值更好地模拟实际可能值; 可取得更好的视觉效果; 三次卷积内插突出的优点是高频信息损失少,可将噪声平滑; 4×4时,像元均值和标准差信息损失小; 计算量大为增加
- 图像处理中内插方法的选择
- 内插方法的选择除了考虑图像的显示要求及计算量,还要考虑内插结果对分析的影响
- 当纹理信息为主要信息时,最近邻采样将严重改变原图像的纹理信息
- 但灰度信息为主要信息时,双线性内插及三次卷积内插将减少图像异质性,增加图像同质性,其中,双线性内插方法使这种变化更为明显
非几何变换
非几何变换属于像素值的变换,没有几何位置的改变—灰度变换。 灰度变换的目的是为了改善画质,使图像的显示效果更加清晰。
- 基本非几何变换类型
- Negative:$s=L-1-r$
- Log: $s=clog(1+r)$
- Inverse log: $s=e^{cr}-1$
- Power-law: $s=cr^{\gamma}$
- r: input gray level; s: output gray level
- 模板运算 (kernel)
- 一个系数矩阵,经常是奇数
- 灰度变换
- 对于输入图像f(x, y),灰度变换T将产生一个输出图像g(x, y), g(x, y)的每一个像素值,均取决于f(x, y)中对应点的像素值
- 例子:
- 图像求反
- 对比度拉伸
- 对比度展宽——突出图像中关心的部分
- 灰度窗——只显示指定灰度级范围内的信息
- 灰度级切片——只保留感兴趣的部分,其余部分置为0
- 图像输入输出的Gamma失真
- 直方图变换
- 直方图是用来表达一幅图像灰度级分布情况的统计表
- 横坐标为灰度,纵坐标为某一灰度值的像素个数,或 出现的频率
直方图变换
- 基本理论
- 直方图均衡
Reference:
https://www.bilibili.com/video/BV1Xb411U79J?t=3&p=4