本文是Gilbert Strang的线性代数导论课程笔记。课程地址: http://v.163.com/special/opencourse/daishu.html  
第三十二课时:基变换和图像压缩

本讲关于基变换,从一组基变换到另外一组基,这在应用中比较常见,还会讲有关应用信号压缩,图像压缩。主题仍是线性变换与矩阵关联。
图像压缩——傅里叶变换
压缩包括无损压缩和有损压缩,这里讲有损压缩。
假设有一张静态黑白图像,像素512×512,每个像素点的颜色是0~255中的一个数表示的灰度值,占8个比特位。那么,实际上就是对R n中的向量x做操作,n=512×512,一个图像就是一个长度为512×512的向量,如果是彩色图像,得到的向量长度就是这个的三倍,因为彩色需要用三个值来表示。所以这是相当大的信息量,需要将其压缩。 标准压缩方式,即JPEG,表示联合图像专家组。这个压缩技术就是基变换。
如上描述,在标准基(单位矩阵I所表示的基)中,图像向量x为一个长度为512平方的向量,向量中的元素值为0~255的灰度值,当一些像素点的灰度一样或者非常接近的的时候,这就是一副标准基很差的图像。一个基本的事实,给出每个像素值的标准基,没有利用上很多地方灰度值一样的特点,我们得到的大部分像素点其灰度值和相邻像素灰度值是一样的。
因此,我们要将标准基变换为一个好的基
标准基是由所有的维都是1,其他都是0的向量组成,如下图左。          
好的基是所有元素都为1的向量(因为如果用这个基向量来表示信号的话,基变换后此维只需要一个系数就能表示,另外,这样的 是平滑的信号,低频,频率为0),如上图右, 一个向量就能完整地给出所有像素一致图像的信息,(当然我们的图像像素不是一致的,混合一些其他信号),在基中有这样一个向量能解决很大问题。其他的基向量是多少? 极端情况下,其中的向量就是(1,-1,1,-1,1,-1...),(表示高频信号,抖动或噪音)这个向量像一个棋盘向量,黑白相间,这个向量能包含所有信息; 更常见的是一半图像暗,一半图像亮,此时的基向量就为(1,1,1,1,-1,-1,-1..)一半1,一半-1(这样做的目的是为了使用一个系数就能表示出一半亮一半暗的向量)。因此,我们要知道这组基可能会是什么,首先,先把所有的基排列好,然后来选择它,不同行业的从业人员选择不会,归根结底这是线性代数基的选择问题。
那么, JPEG所用的最好的基就是傅里叶基,通常选择8×8的基,是指对于一个大的信号,512×512,一次处理就太大了,分解成8×8的块,每块64个像素,在这小块上做基变换。傅里叶基如下(记得以前讲过傅里叶矩阵,就是那个)
那JPEG是怎么压缩的呢?
每个8×8的小块有64个系数,64个基向量,64个像素,在64维空间中,利用傅里叶向量做基变换。
步骤为:
1)输入信号x,用傅里叶基进行基变换,得到傅里叶基下的系数c(用快速傅里叶变换FFT求得),这一步是无损的。
2)压缩:可以扔掉一些小的系数(叫做阈值量化,设定人肉眼看不出区别的阈值,每个系数,每个基向量,不在其中的,超过阈值的将丢掉),因此压缩步得到压缩后的一套系数c',很多是0。这一步是有损的。
3)用新的系数c'重构信号x'。x'=∑ci'vi,此时求和项因为丢掉原因不再有64项,或许只有2,3项。
因此这样就起到了图像压缩的作用。
一个好的基需要有哪些性质?
1)计算快;
2)良好的压缩性,少量的基向量就能接近信号,能够重现图像。
小波基wavelets——傅里叶基的竞争对手
以R 8×8为例。小波基为(这 只是小波基的一个特例,小波基也可能选择别的不一样的向量,比如FBI在做指纹压缩的时候倾向于用更平滑的小波基):(后面三个没写出来的基向量是(0,0,1,-1,0,0,0,0),(0,0,0,0,1,-1,0,0),(0,0,0,0,0,0,1,-1))
对于频率变换大的信号(如上面所述(1,-1,1,-1...))怎么写成小波基组合的形式?它是最后四个小波基的和。
小波变换要做的事即:标准基下的像素值系数向量(也即输入信号)P(p1,p2....p8)表示成小波基的组合形式,这是变换步。组合的8个系数c1,c2...c8即新的基下的系数。
如何求这8个系数,将此等式表示成 小波矩阵形式。
这就是基变换,求解方程P=Wc,c=W-1P,很好的基是能够快速求逆的。(好基:计算快,正交的。小波基不是标准的,变为标准的需要除以长度,这只是个常数因子),快速傅里叶变换FFT能够很快计算,同时,也有 快速小波变换很快求逆(如果矩阵正交,其逆为矩阵的转置)。
基变换
已知一个基上的向量,变换到不同的基中。如小波矩阵W的列向量是新基的向量。已知旧基下的向量x,转换成新基下的向量c
矩阵变换
已知确定的线性变换T:T(x)=Ax,是对于n×n的矩阵来说的。有两组基,第一组以v1,v2...v8为基,有矩阵A,第二组以w1,w2...w8为基,有矩阵B,T(x)=Bx, A和B来自同一线性变换T(来自同一变换的意思是A,B是同一变换的不同表示形式,因为选择的基不同),在一组基上计算得到一个矩阵A,然后在另一组基上计算另一个矩阵B。A和B有什么联系?            
A和B是相似的,即有B=M-1AM,M就是基变换矩阵。
线性变换,如果变成一组不同的基去做变换,发生了两件事:
1)每个向量有了新坐标,新旧坐标的关系为x=Wc;
2)每个矩阵变了,每一个变换有一个新矩阵,新矩阵之间的关系就是B=M-1AM。
具体的,A是什么?(A是变换T的矩阵)
已知有线性变换T,T(v1),T(v2)...T(v8),A中的每一个向量x=c1v1+c2v2+...+c8v8,T(x)=c1T(v1)+c2T(v2)...c8T(v8)
也就是说,如果知道T作用在每个基向量的结果,那么就知道一切了。所以第一个向量变换结果就是这八个基向量的某个组合。假设对v1,v2..v8进行变换呢?线性变换T对基的作用,那么有( 下图中等式有假设:输入和输出都是使用一组基,比如做投影时的变换):
在信号图像应用中,很多情况下用小波基或者傅里叶基,但最好的基是特征向量基,不过找特征向量基代价较大
假如v1到v8这组基是特征向量,即一组特征向量基,那么 Avi=T(vi)=λivi,T(vi)和vi同向,此时,A是什么?
第一列的输入为v1,输出为λ1v1,第二列的输入为v2,输出为λ2v2...., 那么A是特征值对角阵Λ。

线性代数导论32——基变换和图像压缩相关推荐

  1. 线性代数导论4——A的LU分解

    线性代数导论4--A的LU分解 一.A=LA分解 消元的目的,只是为了更好正确的认识矩阵的概念,A=LU是最基础的矩阵分解.L是下三角矩阵,U是上三角矩阵.A通过消元最终得到U,L即A与U之间的联系. ...

  2. 三阶矩阵的lu分解详细步骤_数学 - 线性代数导论 - #4 矩阵分解之LU分解的意义、步骤和成立条件...

    线性代数导论 - #4 矩阵分解之LU分解的意义.步骤和成立条件 目前我们用于解线性方程组的方法依然是Gauss消元法.在Gauss消元法中,我们将右侧向量b与A写在一起作为一个增广矩阵进行同步的操作 ...

  3. 线性代数导论3——乘法与逆矩阵

    线性代数导论3--乘法与逆矩阵 本文是Gilbert Strang的线性代数导论课程笔记.课程地址:http://v.163.com/special/opencourse/daishu.html 第三 ...

  4. 线性代数导论2——矩阵消元

    线性代数导论2--矩阵消元 本文是Gilbert Strang的线性代数导论课程笔记.课程地址:http://v.163.com/special/opencourse/daishu.html 第二课时 ...

  5. 数学 - 线性代数导论 - #10 线性相关性、向量空间的基和维数

    线性代数导论 - #10 线性相关性.向量空间的基和维数 这节课中,我们先讲了前面的课程中一直提及的线性相关性的具体定义,并以此为基础建立了向量空间的"基"和"维数&qu ...

  6. 数学 - 线性代数导论 - #9 Ax=b的解:存在性、解法、解的结构、解的数量

    线性代数导论 - #9 Ax=b的解:存在性.解法.解的结构.解的数量 终于,我们在b为参数的一般情况下,开始分析Ax=b的解,包括标题中的四个方面. 首先是解的存在性. 从几何上说,当且仅当向量b位 ...

  7. 线性代数导论23——微分方程和exp(At)

    本文是Gilbert Strang的线性代数导论课程笔记.课程地址:http://v.163.com/special/opencourse/daishu.html   第二十三课时:微分方程和exp( ...

  8. 线性代数导论35——线性代数全总结

    本文是Gilbert Strang的线性代数导论课程笔记.课程地址:http://v.163.com/special/opencourse/daishu.html   第三十五课时:线性代数全总结 本 ...

  9. 线性代数导论17——正交矩阵和Gram-Schmidt正交化

    本文是Gilbert Strang的线性代数导论课程笔记.课程地址: http://v.163.com/special/opencourse/daishu.html   第十七课时:正交矩阵和Gram ...

最新文章

  1. 看完这篇,code review 谁敢喷你代码写的烂?怼回去!
  2. Flask实战2问答平台-完成登录注册功能
  3. db2界面调用存储过程_第三章 操作系统用户界面
  4. 关于opencv中Mat赋值(浅拷贝,深拷贝)原理
  5. java 序列化 uid,Java中的序列化版本uid
  6. Windows API GetProcAddress 及demo code
  7. 萝卜源码前后端源码 附打包APP的教程
  8. 计算机大一笔试题,大学计算机基础(大一) 笔试题库
  9. VMware 虚拟机下载与安装
  10. 【2018盘点VR一体机那些事】手机VR眼镜和VR一体机有什么区别?AR,VR眼镜和VR一体机哪个好?
  11. 大学计算机ps教程 pdf,Photoshop中文教程.pdf
  12. 2018 ccpc-wannafly winter camp结营总结(那些年,那些ACM大佬)
  13. 驰骋工作流签订中国航天,广东航宇卫星
  14. 基于JDE的目标跟踪算法前沿研究跟进
  15. 自动驾驶数据之争,走向合规
  16. sql server数据库 18456错误修复
  17. 嵌入式Linux 软件界面,嵌入式Linux下的图形用户界面系统设计
  18. SAP中采购合同与采购计划协议关联性分析
  19. 【JAVA案例】判断电话号码运营商
  20. C#开发OPC客户端

热门文章

  1. STM32 GPS悬停飞控 (三十五)树莓派 4g视频回传
  2. 小程序RSA加密 - 公钥加密
  3. 基于最小二乘法的——线性回归拟合(一)
  4. css图片渐变透明效果
  5. Leetcode题解-算法-数学
  6. kernel panic - not syncing : fatal exception
  7. 尾部相关性尾部风险价圣分
  8. Linux_arm64架构(TX2)安装vscode
  9. 数据中心100G主流应用技术分析
  10. 【数学】函数极限计算