图像处理期末复习指南
blog: skywircL'blog
基础部分
RGB颜色模型
常见的各种颜色光,都可以由红(R)、绿(G)、蓝(B)三种颜色光按不同比例混合而成。
颜色C= r[R]+ g[G]+b[B]
其中黄和蓝互为补色
CMY减色模型
颜色不是来自光线的叠加,而是来自光线照射到颜料以后,被颜料吸收一部分而反射剩余的光线,故称为减色模型。 当所有颜料都加入成为黑色,只有颜料减少时才开始出现色彩,故称为减色模型。
CMYK模型
所有油墨都包含杂质,CMY三种混合实际上产生一种浑浊的棕色
直接加入黑色更经济 所以加入一种黑色(K) ——四色打印
优点
- CMY可以生成任何颜色 2. 适用于印刷或打印
缺点
- 难以编辑(视觉对颜色的感知是非线性的) 2. 颜色的生成方式不直观
- 与设备相关
HSI模型
HSI模型由三个分量组成:
- Hue(色调):用角度度数(0°-360°)来表示颜色的主体感受,如红色、蓝色等。
- Saturation(饱和度):表示颜色的纯度或者颜色的浓淡程度,范围是0%-100%。
- Intensity(亮度):表示颜色的明暗程度,范围是0%-100%。
HSI模型的优点
-
可以生成很多颜色
-
从心理学的角度出发,符合人的主观感受
-
色度和亮度分开——有什么作用?
便于图像处理 分离亮度和色度信息可以方便地对图像的亮度和颜色进行独立调整。比如只调整亮度而不影响颜色,或者只改变颜色而保持亮度不变。这在图像增强、对比度调整等图像处理操作中非常有用。
提高鲁棒性 亮度分量对光照变化更加敏感,而色度分量则相对稳定。将两者分开可以使得在光照条件变化时,仍然能够可靠地提取颜色信息,提高了算法的鲁棒性。
符合人眼感知 人眼对亮度的变化比对颜色的变化更加敏感。HSI模型中将亮度独立出来,更符合人眼的感知特点,也更易于人们理解和使用。
有利于压缩 在图像和视频压缩中,可以Quantization对亮度分量使用更高的精度,而对色度分量使用较低的精度,从而在保证视觉质量的同时减小数据量,提高压缩效率。
便于特征提取 在计算机视觉、模式识别等领域,色度分量可以作为提取图像特征的重要线索,如皮肤颜色检测、道路检测等,分离出来有利于特征的提取和表示。
彩色图像处理
灰度图像处理:灰度图变灰度图 伪彩色图像处理:灰度图变彩色图 灰度化:彩色图变灰度图 彩色变换:彩色图变彩色图
伪彩色图像处理
灰度切分
同理可得,如果需要M种颜色,就切分出M个阶梯,一个阶梯表示一个颜色
灰度到颜色变换
简单理解就是map映射,将原始灰度图像中的灰度值映射到一个选定的颜色映射表(Color Map)中,从而将每个像素的灰度值赋予一种特定的颜色。
频域处理
简单了解即可,感觉不太会考这个
真彩色图像处理
两种方法
- 单独处理:单独处理每个分量图
输出图像的R’只和输入图像的R有关
输出图像的G’只和输入图像的G有关
输出图像的B’只和输入图像的B有关
- 整体处理
输出图像的R’和输入图像的R,G,B都有关
输出图像的G’和输入图像的R,G,B都有关
输出图像的B’和输入图像的R,G,B都有关
数字图像的表示
黑白图像
或称为二值图像,0/1图像
用1bit表示两种颜色 0为黑色, 1为白色
灰度图像
只有明暗不同,没有色彩
8bit灰度图,共有256级灰度。0黑——255白
彩色图像
24bit彩色图像(真彩色)
通常用8bit表示每个颜色分量。有时用12bit。
R—— 8 bits,0——255 G—— 8 bits,0——255 B—— 8 bits,0——255
256 * 256 * 256=16 777 216种颜色。
颜色通道
数字图像
什么是数字图像 - >对连续图像数字化(或离散化)的结果,也称离散图像
如何将模拟图像转换成数字图像
采样 - > 量化 - > 编码
像素间关系
欧式距离: 两个像素点在平面上直线距离 $$ d(A,B) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} $$
城区距离: 曼哈顿距离或绝对值距离。它是两个像素坐标分量的绝对差之和,类似于在城市街区中行走的路径 $$ d(A,B) = |x_2 - x_1| + |y_2 - y_1| $$
棋盘距离 : 也称最大距离。它是两个像素在水平和垂直方向上较大的坐标分量差值。 $$ d(A,B) = \max(|x_2 - x_1|, |y_2 - y_1|) $$
什么是图像的直方图
图像的直方图是一种统计工具,用于表示数字图像中亮度分布的情况。它显示了图像中每个亮度值的像素数量。在直方图中,横坐标代表亮度值,纵坐标代表对应亮度值的像素数。这种图表可以帮助我们理解图像的整体亮度分布,例如,哪些亮度值是最常见的,以及图像是偏暗还是偏亮。
噪声
高斯噪声、均匀噪声、指数噪声、椒盐噪声
直方图增强(计算重点)
直方图均衡化
什么形状的直方图对应的图像比较好?
如果一幅图像的直方图是均匀分布,则该图像的质量是好的。
均衡化步骤:
其中L表示灰度取值,MN即像素总共的个数
接着求s ,结果四舍五入 $$ s_k=(L-1)\sum_{i=0}^k p(r_i) $$ 将s值相同的合并|r_k|,得到|s_k| $$ p_s(s_k)=\frac{|s_k|}{NM} $$ 重新绘制即可
直方图规定化
直方图规定化(Histogram Specification)是一种基于直方图的图像处理技术,它通过将一幅输入图像的直方图分布**变换为期望的目标直方图分布,**从而改变图像的对比度和亮度特性。
目的:作灰度变换,使得变换后图像的直方图具有规定的形状。
规定化步骤:
将原图均衡化得到r - > s的变换
将规定图也均衡化,得到z-> u的变换
最后一步找r到z的变换
如上图所示:利用B‘到B的逆变换
【原理】:B到B‘ 假设有q -> 8
那么逆过来,如果A‘中有8,想要变换到B,那么就直接由8 ->q
例子如下,其中r到s 有0到1
z到u有 3到1
则r到z有0到3
【注】对于s,如果没有u与之相等,就选一个最接近s的u
与u对应的z可能不止一个,选最小者
对于连续函数来说,他的逆函数为反函数(指定图均衡化变换的反函数)
图像增强
什么是图像增强?
加强突出有效信息,削弱抑制无效信息
图像运算
图形学已经学过一遍了,这边就列举几个相对比较复杂的式子,简单提一下
旋转变换
$$ \begin{bmatrix} x’ \ y’ \end{bmatrix} = R(\theta) \begin{bmatrix} x \ y \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta \ \sin\theta & \cos\theta \end{bmatrix} \begin{bmatrix} x \ y \end{bmatrix} $$
缩放变换
$$
\begin{bmatrix}
x’ \ y’
\end{bmatrix}
= S
\begin{bmatrix}
x \ y
\end{bmatrix}
= \begin{bmatrix}
s_x & 0 \
0 & s_y
\end{bmatrix}
\begin{bmatrix}
x \ y
\end{bmatrix}
$$
当s_x=s_y时,为均匀缩放,当s_x != s_y时,为非均匀缩放
平移变换
平移变换比较特殊,这里提一下
平移变换的数学表示不能写作线性变换的矩阵形式,只能记作 $$ \begin{bmatrix} x’\ y’ \end{bmatrix} = \begin{bmatrix} x\ y \end{bmatrix}
- \begin{bmatrix} t_x\ t_y \end{bmatrix} $$
说明平移操作不是线性变换。但是我们不希望把平移操作看作特殊变换,因此需要把这些变换统一起来,就引入了齐次坐标。
对于点坐标的拓展表示: $$ \begin{bmatrix} x \ y \ 1 \end{bmatrix} $$ 二维坐标(x, y)扩展为三维齐次坐标(x, y, 1),补一个1
则变换矩阵可得: $$ T = \begin{bmatrix} 1 & 0 & t_x \ 0 & 1 & t_y \ 0 & 0 & 1 \end{bmatrix} $$ 通过以下式子解出t_x 和 t_y即可 $$ \begin{bmatrix} x’ \ y’ \ 1 \end{bmatrix} = T \begin{bmatrix} x \ y \ 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & t_x \ 0 & 1 & t_y \ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \ y \ 1 \end{bmatrix} $$
灰度变换
$$ g(x,y)=T(f(x,y)) $$
输出像素的灰度值只和输入像素的灰度值有关
线性变换:
图像求反: $$ s = (L-1)-r $$ 分段:
作用:突出感兴趣的灰度,抑制不感兴趣的灰度
阶梯量化:
灰度切片
空域滤波
什么是空域滤波?
在空域实现频域的某种操作
它直接对图像每个像素点的灰度值进行操作,通过运用不同的根据滤波器的作用不同,空域滤波可分为不同类型
线性滤波器
为什么线性滤波器的k值之和为1?
线性滤波器的卷积核(也称为滤波模板)系数k的和需要等于1的原因,主要是为了保证滤波后图像的灰度值不会发生整体偏移或者失真。
线性滤波器的作用;1.平滑,2.去噪声
线性滤波器的优缺点:
优点 :1.使图像更加柔和 2.减弱噪声
缺点:1. 会使得图像变得模糊降低对比度 2.不能消除噪声
非线性滤波器
中值滤波器:
中值滤波(Median Filtering)是一种非线性滤波方法,它的计算原理是:
- 选取待处理像素及其邻域像素构成一个邻域窗口(如3x3、5x5等)。
- 在该邻域窗口内,将包括当前待处理像素在内的所有像素的灰度值从小到大排序。
- 取排序后位于中间的那个灰度值作为输出,即中值(median)。
- 将该中值赋给当前待处理像素,作为输出图像在该点的像素值。
- 依次滑动邻域窗口,对图像每个像素重复上述操作,得到整个输出图像。
相对于均值滤波器,中值滤波器有以下优点:
- 可平滑图像
- 消除孤立噪声
- 减轻模糊,保留原有图像信息
除了中值滤波器,非线性滤波器还有最大值滤波器,最小值滤波器,还有中点滤波器
其中中点滤波器的计算方法为,是最大值与最小值之和的二分之一 $$ g(x,y) = \frac{1}{2}(\max_{f(x,y) \in W}{f(x,y)}+ \min_{f(x,y \in W)}{f(x,y)}) $$
锐化滤波(没太掌握)
图像的边缘或轮廓太模糊,需要使用锐化滤波增强它。
锐化的目的:使边缘、轮廓的灰度反差更强。
需要一个量来刻画每个像素(x,y)的灰度变化大小,使用像素值的梯度(gradient)来刻画图像变化的大小
拉普拉斯算子的连续形式(f(x,y)) $$ \nabla^2 f(x,y) = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} $$ 离散形式 $$ \begin{bmatrix} 0 & 1 & 0\ 1 & -4 & 1\ 0 & 1 & 0 \end{bmatrix} $$
频域增强
高通滤波器:保留高频,滤除低频
低通滤波器:选择频率D0,D0以内都保留,D0外的都滤除 作用:平滑图像
图像压缩
图像压缩:用更少的数据量表示原图像中的信息
因为压缩是通过改变编码实现的,又称为图像编码。
图像为什么可以压缩? ——因为有冗余
图像冗余种类:
-
编码冗余
编码冗余与图像数据的表示方式有关。例如,在一个8位灰度图像中,每个像素使用8位来表示256个可能的灰度值。但是,如果图像只使用了其中的一小部分灰度值,那么就存在编码冗余。通过使用更有效的编码方式(如霍夫曼编码),可以减少这种冗余。
-
空间冗余
空间冗余(Spatial Redundancy): 空间冗余指的是图像中相邻像素之间的相关性。在大多数自然图像中,相邻像素往往具有相似的值。这种相似性可以被利用来压缩图像,因为我们可以用较少的信息来表示相似的像素区域。
-
心理视觉冗余
心理视觉冗余利用了人类视觉系统的特性。我们的眼睛对某些类型的信息比其他信息更敏感。例如,我们对亮度的变化比对颜色的细微变化更敏感。通过去除人眼不太敏感的信息,可以在不明显降低感知质量的情况下压缩图像。
压缩质量的评价准则
客观:
1.压缩比 2.失真 3. 算法复杂度 4. 算法通用性。。。等等
主观评价
lavg
熵是平均编码长度的下界
熵就像光速一样,是极限。
**如果平均编码长度大于熵,则存在编码冗余。 **
目标:编码平均长度尽量和H接近。
最大的情况:均匀分布
所有分布中,均匀分布的熵最大。
最小的情况:退化分布
熵的计算公式: $$ H = -\sum_{i=1}^{N} p_i \log_2 p_i $$
图像压缩算法
这里只提位平面编码,默认香农和哈夫曼已经学过
游程编码
游程编码(Run-Length Encoding, RLE)是一种简单而有效的无损压缩编码方式,主要针对具有相同数值连续出现多次的数据,用连续数据的值和连续出现的次数(游程长度)来表示,从而达到压缩的目的。
具体来说,游程编码的工作原理是:
- 扫描原始数据,识别连续重复的值及其游程长度
- 用一个值-计数对(value, count)来表示该游程
- 重复以上过程,直到扫描完整个数据序列
例如,对于如下数据序列:
1,1,1,1,2,2,2,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,6,6,6,6
可以用如下游程编码表示:
(1,4), (2,3), (3,5), (4,8), (5,4), (6,6)
其中(1,4)表示值1连续出现4次。
位平面编码
位平面编码(Bit-Plane Coding)是一种用于图像和视频压缩的技术,它将图像或视频帧的每个像素表示为二进制编码,然后对每个二进制位位平面进行单独编码。
步骤:
将图像或视频帧的每个像素值转换为二进制表示,比如对于8位灰度图像,每个像素用8位二进制数表示。
从最高有效位开始,将所有像素的同一位组成一个二进制位平面。因此,对于8位像素,将产生8个位平面。
对每个位平面分别进行编码,通常使用游程编码(Run-length Encoding)等技术。由于相邻像素具有相关性,每个位平面往往具有较大的空间冗余。
二值编码的缺点:
假设有这样一行像素值:127 128 127 128 127 128 …每相邻两个像素值只相差1,但是它们的二进制表示在每个位平面上都是不同的:
127的二进制是: 01111111 128的二进制是: 10000000
我们可以看到,在最高有效位(MSB)这个位平面上,127是0,128是1,它们是完全不同的; 在次高有效位这个位平面上,127是1,128是0,也完全不同; … 一直到最低有效位(LSB),127是1,128是0,仍然不同。
这意味着,对于这样的数据,在任何一个位平面上,都没有出现足够长的游程,无法高效地应用游程编码压缩。导致即使使用位平面分解和游程编码的组合方式,压缩效果也不太理想。
如何解决——格雷码
ai, 0 <=i <=7 为二值分解的结果,Grey码为: $$ g_i = \begin{cases} a_i \oplus a_{i+1}, & 0 \leq i \leq 6\ a_i, & i = 7 \end{cases} $$ 优点:相邻的灰度值只有1个比特位不相同。
差分编码(暂时跳过,感觉不重要,但是可以了解下)
JPEG概要
JPEG (Joint Photographic Experts Group) 联合图像专家组
专家组开发的算法称为JPEG算法。
1992年成为国际标准,因此又称为JPEG标准。
JPEG格式:大多数浏览器都支持这种格式的文件。 后缀:.JPG或.JFF(或JFIF)。