SVD 图像处理
奇异值分解在图形压缩中的应用

文章目录

  • (1) 奇异值分解
  • (2) 利用 SVD 对原数据进行降维
  • (3) matlab的相关操作
    • 1. 对单张图片的处理
    • 2. 对文件夹中的图片批量处理
    • 3. 视频处理

(1) 奇异值分解

A m × n = U m × m ∑ m × n V n × n T A_{m\times n}=U_{m\times m}\sum\nolimits_{m\times n}V^T_{n\times n} Am×n​=Um×m​∑m×n​Vn×nT​

  • 奇异值矩阵:大小和 A A A 相同,除了主对角线上元素不为 0 0 0 以外,其余位置的元素均为 0 0 0 。例如:

    [ 5 0 0 0 4 0 ] \left[ \begin{matrix} 5&0&0\\ 0&4&0 \end{matrix} \right] [50​04​00​]

  • U m × m U_{m\times m} Um×m​ 的求解

    • 计算 P = A × A T P=A\times A^T P=A×AT,这是一个 m m m 阶的对称矩阵。
    • 对 P P P 进行相似对角化,并按特征值从大到小排列,就可得到 P = U B 1 U T P=UB_1U^T P=UB1​UT。
  • V n × n V_{n\times n} Vn×n​ 的求解

    • 计算 Q = A T × A Q=A^T\times A Q=AT×A,这是一个 n n n 阶的对称矩阵。
    • 对 Q Q Q 进行相似对角化,并按特征值从大到小排列,就可得到 Q = V B 2 V T Q=VB_2V^T Q=VB2​VT。
  • ∑ m × n \sum\nolimits_{m\times n} ∑m×n​ 的求解

    • 由于 A × A T , A T × A A\times A^T,A^T\times A A×AT,AT×A,非零特征值相同。
    • 将这些非零特征值开方并从大到小填入一个和 A A A 大小相同全零矩阵,形成奇异值矩阵。

(2) 利用 SVD 对原数据进行降维

  • 对原理的直观理解:

    • 首先,一个矩阵是由不同的基组成的,矩阵的基通过一定规律的组合就可以将原矩阵还原,而使用 SVD 方法就是将组成矩阵的基找到, U m × m U_{m\times m} Um×m​ 反映的就是找到的基,而保证 U m × m U_{m\times m} Um×m​ 是一个正交单位矩阵,是由于正交的矩阵其基的冗余信息最少。
    • 其次,每一个基在原矩阵中的“重要性”不同,而 ∑ m × n \sum\nolimits_{m\times n} ∑m×n​ 就反映这个权重。
    • V n × n V_{n\times n} Vn×n​ 是一个记录基的组合方式,进而完成还原的矩阵。

  • 通过保留较少的特征值,可以实现降维,注意这里的降维不是表示矩阵的大小减小,而是降低矩阵的秩。
  • 计算保留原矩阵的特征比例 λ = 8.45 + 4.94 8.45 + 4.94 + 1.11 × 100 % = 92.34 % \lambda=\frac{8.45+4.94}{8.45+4.94+1.11}\times 100\%=92.34\% λ=8.45+4.94+1.118.45+4.94​×100%=92.34%

(3) matlab的相关操作

1. 对单张图片的处理

① ① ① matlab 进行奇异值分解
[U,S,V]=svd(A) ,注意这里的 V 是没有进行过转置的,A 要是一个 n × n n\times n n×n 的矩阵。
② ② ② matlab 返回主对角线元素 P=diag(A)
③ ③ ③ matlab 读入图片
img=imread(图片地址),注意这样读出来的是一个 uint8 类型的矩阵,要转化成 double 型的才能进行 SVD 操作。
④ ④ ④ matlab 转化为灰色图片 I = rgb2gray(A)
⑤ ⑤ ⑤ matlab 将 RGB 三个颜色矩阵整合成一个 img=cat(3,r,g,b)
⑥ ⑥ ⑥ matlab 保存图片
imwrite(uint8(A), 保存地址),注意这里要把颜色矩阵转化回 uint8。

2. 对文件夹中的图片批量处理

① ① ① matlab 将文件名拼接

fullfile('dir1', 'dir2', ..., 'filename')
f = fullfile('dir1', 'dir2', ..., 'filename')
具体例子:
输入:f = fullfile('C:','User','matlab','matlab.m')
得到:f =C:\User\matlab\matlab.m

② ② ② matlab 文件结构数组

dirOutput=dir('正则表达式');
dirOutput = 包含以下字段的 struct 数组:namefolderdatebytesisdirdatenum

3. 视频处理

① ① ① matlab 读取视频文件

VideoObj=VideoReader(视频文件的地址)VideoReader - 属性:
Name - 视频文件名
Path - 视频文件路径
Duration - 视频的总时长(秒)
FrameRate - 视频帧速(帧/秒)
NumberOfFrames - 视频的总帧数
Height - 视频帧的高度
Width - 视频帧的宽度
BitsPerPixel - 视频帧每个像素的数据长度(比特)
VideoFormat - 视频的类型, 如 'RGB24'.
Tag - 视频对象的标识符,默认为空字符串''
Type - 视频对象的类名,默认为'VideoReader'.

② ② ② matlab 读取指定帧 video = read(v,index) 只读取 index 指定的帧。

SVD matlab图像处理相关推荐

  1. matlab图像处理命令(二)

    转自:http://blog.163.com/crazyzcs@126/blog/static/1297420502010229104452729/ (非原处) 图像增强 1. 直方图均衡化的 Mat ...

  2. matlab图像处理命令(一)

    转自:http://blog.csdn.net/langyuewu/archive/2009/05/02/4144120.aspx(非原处) 1.applylut 功能: 在二进制图像中利用looku ...

  3. Atitit MATLAB 图像处理attilax总结

    Atitit MATLAB 图像处理attilax总结 1.1. 下载 Matlab7.0官方下载_Matlab2012 v7.0 官方简体中文版-办公软件-系统大全.html1 1.2. Matla ...

  4. matlab图像处理——平滑滤波

    平滑滤波--matlab图像处理 平滑滤波的目的是消除或尽量减少噪声,改善图像的质量.假设加性噪声是随机独立分布,这样利用图像像素领域的平均或加权平均即可有效地抑制噪声干扰.从信号分析的观点来看,图像 ...

  5. matlab图像相加例子,MATLAB图像处理例子

    MATLAB图像处理例子 clc;clear all;close all; a = imread( railway_05.jpg ); b = rgb2gray(a); c = im2bw(b,240 ...

  6. Matlab图像处理创新实践-实验4【综合设计大实验——GUI综合设计】

    Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...

  7. Matlab图像处理创新实践-实验3【图像锐化】

    Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...

  8. Matlab图像处理创新实践-实验2【图像滤波基础(2)】

    Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...

  9. Matlab图像处理创新实践-实验1【图像滤波基础(1)】

    Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...

最新文章

  1. php无法加载dll插件,php无法加载动态库怎么办
  2. php imagettftext 水印 粗体
  3. 博客园升级有感一点建议
  4. 简单的创建一个性能计数器
  5. 通过SQL Server 2008 访问Oracle 10g
  6. 作者:曾琛(1987-),女,就职于中国科学院计算技术研究所。
  7. AE学习笔记——第二章:AE图层中的图层用法及基本操作
  8. 远程办公(2)-重新定义“雇佣关系”:交易成果,而不是时间
  9. JS中定时器的返回数值ID值
  10. python :super 的作用
  11. mysql php sdk_PHP连接MySQL数据库
  12. 01背包 hihocoder第六周
  13. 华为手机序列号前三位_华为所有型号交换机查看序列号方法
  14. IOS点,分辨率,尺寸,机型
  15. 红米笔记本linux系统版本,小米笔记本安装Win10+Ubuntu16.04 LTS 双系统
  16. 看理想:3万辆交付意味着什么?
  17. Python基础教程之Matplotlib-基础绘图
  18. 新一代区块链手机“甲骨文”即将上市
  19. 盘点:中国历史上最杰出的“十位圣人”
  20. 网络安全学习--随笔

热门文章

  1. platform总线
  2. 计算机硬件的发展变化,电脑硬件飞速发展到今天,来看下10年前与现在发生了哪些变化...
  3. [子串问题]最长不重复子串
  4. PostGreSql判断字符串中含中⽂⽅法
  5. 搜狗图像技术团队夺得 MegaFace 人脸识别赛道第一
  6. js判断页面滚动方向
  7. 网上邻居无法访问的一点启示
  8. 如何做一个职业的程序员-《麦肯锡方法》读书笔记
  9. 2019年五一放假公众号推文主题怎么选?
  10. 内存正确性测试工具 memtester