图像处理-相关知识点
计算机图像处理
- 
BMP文件格式
 - 
- 彩色图像的文件结构
 - 灰度图像的文件结构
 - 彩色变灰度
 
 - 
图像增强技术
- 
空间域点处理增强方法
- 直方图修正包括均衡化和规定化两种方法
 
 - 
图像间的运算包括算术运算和逻辑运算
 - 
空间域滤波增强方法基于模板操作
- 平滑滤波器常用于降噪处理
 - 锐化操作通常采用直接差分法实现
 - ROBERTS梯度算子适用于边缘检测
 - SOBEL梯度算子在图像锐化中被广泛应用
 - LAPLACE拉普拉斯算子能够有效消除噪声并锐化图像细节
 - 中值滤波和加权平均相关技术可有效去除噪声干扰
 
 - 
频域图像增强
 - 
- 低通
 
 
 - 
 - 
傅里叶变换(Fourier Transform)
- 压缩编码方案的必要性和可行性分析
 - RLE(Run-Length Encoding)算法及其在图像压缩中的应用
 - 图像的空间自信息量及其熵特性分析
 - 变长最优编码定理的应用与研究
 - Shannon-Fano算法的基本理论
 - Huffman算法的核心原理
 - 算术编码技术的发展与优化
 - LZW(Lempel-Ziv-Welch)算法的基本思想
 - 无损预测型静态数据压缩理论基础
 - 有损预测型动态数据压缩方法研究
 - 基于离散余弦变换(DCT)的静态预测压缩理论研究
 
 
BMP文件格式
彩色图像的文件结构
彩色图像的文件格式:
| 文件头 | 信息头 | 像素数据包 | 
|---|---|---|
| 14bytes | 40bytes | (w 3+3)/4 4*h | 
倒序存储,每行的字节数是4的倍数,
    typedef struct tagBITMAPFILEHEADER{
    	WORD bftype;//指文件类型,必须是0x4D42,即“BM”
    	DWORD bfsize;//整个文件大小=文件头+信息头+像素数据包
    	WORD bfReserved1;//保留位
    	WORD bfReserved2;//保留位
    	DWORD bfOffBits;//从开始到像素数据位置的偏移字节数=文件头+信息头
    }BITMAPFILEHEADER;
    
    
      
      
      
      
      
      
      
    
    AI写代码
        灰度图像的文件结构
256级灰度图像文件格式
| 文件头 | 信息头 | 调色板 | 像素数据包 | 
|---|---|---|---|
| 14bytes | 40bytes | 1024bytes | (w+3)/4**4*h | 
彩色变灰度
Y = 0.299R+0.587G+0.114B
图像增强
图像增强的主要目标是获得视觉效果优化后的更具实用价值的图像,并且它是针对特定问题设计的技术手段,在缺乏统一的技术标准的情况下。
空域点处理增强(基本方法-变换函数)
空域:定义为我们所使用的像素所构成的空间;空域增强则特指直接作用于单个像素上的增强技术。掌握空域增强的基本原理对于理解T变量的含义至关重要,在黑板上进行手写推导能够加深对该知识点的理解。具体而言,在单独一个像素点上执行操作的方法被称为点处理法;而当在一个像素的小区域内执行操作时,则被定义为领域处理法
直接灰度操作包括线性操作、对数操作、层次操作以及切割操作等基本类型。
在进行图像反转时(即取反运算),给定一个具有取值范围为[0,L−1]的图像,则通过将每个像素值s按照t = L−1−s的方式转换为新的像素值t,并将其映射至相反的数值区间以突出原始图像中暗部区域中的白色或灰色细节特征。
该方法通过分段线性处理实现图像细节的空间亮度提升和对比度增强
在应用对数变换时:为了减少由于动态范围过大的影响所导致的图像失真效果较差的问题
一种策略:对关注的重点区域(即感兴趣的部分)采用较高的亮度等级T2进行显示;而对于其他区域,则采用了较低的亮度等级T1来进行展示。
另一种方案:通过将感兴趣的部分设定为较高的亮度等级(即使用较大的灰度值)来进行处理;而对于未受关注的区域,则维持原有亮度水平。
在位图切割技术中:其中包含了八个不同的亮度层次,并且每个层次对应着不同的亮度范围。通常以编号0的位面作为亮度最低的部分,在图形界面中可以看到这些不同亮度层的变化情况。通过操作特定的亮度层次(bit planes),我们可以有效地提升或降低图像的整体对比度。
直方图修正:均衡化、规定化

用式

将tk扩展到[0,L-1]范围内并取整
int为向下取整,L为灰度级个数
图像间的运算:算术运算、逻辑运算
空域滤波增强(基本方法-模板操作):
空域滤波就是在图像中逐点地移动模板,对每个点都进行模版操作。
平滑算子

锐化算子:直接差分算子


ROBERTS算子


SOBEL算子


LAPLACE算子
因f(x,y)离散,所以

如果加上对角线元素,则


右:加上对角线元素
中值滤波、加权
基于一个包含奇数个像素的移动窗口,在该窗口中心位置处进行处理
频域图像增强
低通
理想低通滤波


n阶巴特沃斯低通滤波器


高通
理想高通滤波器


n阶巴特沃斯高通滤波器


带通


带阻

同态


傅里叶变换
一维傅里叶

二维离散傅里叶变换



压缩编码的必要性与可行性
即使基于现有的存储与传输技术, 若将原始图像直接存贮与传递, 则难以满足我们所需的需求. 为提高存贮与传递效率, 必须将原始图像经过压缩编码处理, 压缩后的结果可存贮或传递. 使用时则需解码以供查看.
编码:
通过特定符号或声音来传递特定信息的方式就是编码。
三要素包括:
参与编码的基本元素
这些元素之间的排列顺序
以及它们所处的具体情境或环境
在图像数据中通常会遇到以下几种类型的冗余特征:
(1) 空间维度上的信息重叠
(2) 时序性上的信息重复
(3) 层次结构中的信息重复
(4) 编码方式下的信息压缩
(5) 认知层面的信息重叠
(6) 视觉特性上的信息重叠
RLE编码

图像的自信息量、熵
信源X ,某个信源符号xk,如果它出现的概率是pk
xk的自信息量

信源熵H(X)

等长编码:在一个离散信源中每个符号均被赋予相同位数的不同码字以实现编码则称之为等长编码如中国的4位电报编码即属于此类编码方案。
variable-length codes are termed as variable-length coding schemes when different symbols in a source are assigned codes of varying lengths.
相较于定长编码而言,变长编码更加复杂。除了必须满足唯一可译性的要求之外,还存在即时解码的困难。
变长最佳编码定理
信源的平均码长值lavg大于等于H(X),这表明熵是无失真条件下编码效率的理想下界;也就是说,在无失真条件下熵构成了一个不可超越的理想编码效率界限。
如果每个I(xk)均为整数,并且l(xk)=I(xk),则可以使平均码长等于熵。
对于非等概率分布的信源,在采用不等长编码时其平均码长会低于采用等长编码情况下的平均码长。
当信源中各符号的概率相等时,则信源熵达到最大值,并符合最大离散熵定理。
在变长编码体系中,默认高频信息符号将被分配较短的编码;而低频信息符号则会获得较长的编码。若各个码字的长度严格按照对应信息符号频率高低顺序进行逆序安排,则该编码体系的平均码字长度必然低于任何其他可能的排列方式。
SHANNON-FANO编码
(1)按照XI发生的频率大小进行降序排列。
(2)划分成两组并使两组的总概率尽可能接近。反复执行上述步骤直到不能再分割为止,并确保每个叶子仅对应一个特定的符号。
(3)对这两组分别进行编码时,在左边的部分标注为0,在右边的部分标注为1。
(4)将各个部分标记的0、1连接起来即可得到各信源符号对应的二进制编码序列。
HUFFMAN编码
(1)将信源符号XI按其出现的概率,由大到小顺序排列。
(2)将两个最小的概率的信源符号组合相加,并重复这一步骤,始终将较大的概率分支放在上部,直到只剩下一个信源符号且概率达到1.0为止;
(3)对每对组合的上边一个指定为1,下边一个指定为0(或上边为0,下边为1);
(4)画出由每个信源符号到概率1.0处的路径,记下沿路径的1和0;
(5)对于每个信源符号都写出1、0序列,则从右到左就得到非等长的码字。
特点:
(1)Huffman编码不唯一
两个概率分配码字“0”和“1”是任意选择的(大概率为“0”,小概率为“1”,或者反之)
在排序过程中两个概率相等,谁前谁后随机
(2)变长码,平均码字短,效率高,但实时硬件实现很复杂(特别是译码),抗误码能力差
(3)信源概率是2的负幂时,效率达100%
(4)Huffman编码只能用近似的整数位来表示单个符号,而不是理想的小数
这是Huffman编码无法达到最理想的压缩效果的原因
算术编码
思路:
也不只是将单个信源符号直接映射为一个码字;
而是将整个信源的统计特性表示为实数区间[0,1)中的某个区间(INTERVAL);
消息序列中的每个符号都会被压缩成对应的区间;
当消息序列中包含的元素数量增加时,所对应的编码区间的长度会相应减小;
接着,在这个区间内选取一个代表性的数值,并将其转换为二进制形式作为最终的实际编码输出;
算术编码通过动态调整符号的概率分布来优化编码效率
LZW编码
LZW编码算法的具体执行步骤如下:
步骤1: 将词典初始化为包含所有可能的单字符,当前前缀P初始化为空;
步骤2: 当前字符C 的内容为输入字符流中的下一个字符;
步骤3: 判断P+C是否在词典中
(1) 如果“是”, 则用C扩展P,即让P=P+C;
(2) 如果“否”,则
①输出当前前缀P的码字到码字流;
②将P+C添加到词典中;
③ 令前缀P = C (即现在的P仅包含一个字符C);
步骤4: 判断输入字符流中是否还有码字要编码
(1) 如果“是”,就返回到步骤2;
(2) 如果“否”
① 把当前前缀P的码字输出到码字流
② 结束。
无损预测编码原理


有损预测编码原理


德尔塔调制(预测器与量化器)

基于DCT的静态编码原理

