13.奇异值分解SVD和图形处理

奇异值分解是线性代数中一种重要的矩阵分解,其在图形学、统计学、推荐系统、信号处理等领域有重要应用。奇异值分解在图形压缩中的运用以及对视频进行一定的处理。

SVD和图形处理

(1)线性代数基础知识

1.特征值和特征向量,求解,特征多项式
在这里插入图片描述
2.相似的概念,相似对角化的概念
在这里插入图片描述
3.线性无关
在这里插入图片描述
4.可对角化,有n个线性无关的特征向量
实对称矩阵A一定可以相似对角化
5.正交,标准正交向量组,施密特正交法–正交矩阵
在这里插入图片描述
6.正定矩阵,半正定矩阵
在这里插入图片描述
在这里插入图片描述

(2)奇异值分解

1.奇异值矩阵
把A分成正交矩阵 * 奇异值矩阵 * 正交矩阵
其中的奇异值矩阵,和A的大小一样,主对角元素是从大到小排列的。

对于奇异值矩阵,有对角元素称为奇异值,其他位置元素为0
在这里插入图片描述
分别计算三个矩阵的方法
U,V利用特征值
在这里插入图片描述
在这里插入图片描述
奇异值求解,用特征值开根号
在这里插入图片描述
利用matlab中SVD就可以得到数据降维后的结果。
这里说的降维,更加准确来说的使得矩阵的秩减小,大小并没有改变。对应分解的矩阵的秩会变小。舍去了奇异值中值,特征值小的部分。
保留原矩阵的特征比例可以通过奇异值矩阵对角线数相加,相比就可以得到最后的结果。
在这里插入图片描述

(3)matlab操作

[U,S,V]=svd(A)
%注意在这里是v,而分解得到的是V的转置,所以下面需要加上转置符号
U*S*V'-A   %可能会有浮点数的一点误差,近似0

然后分解成功后我们就可以进行压缩就,计算对应特征。

(4)matlab对图片的压缩

(1)原理:RGB模式
三原色:
RGB(0,0,0)黑
RGB(255,0,0)红
RGB(0,255,0)绿
RGB(0,0,255)蓝
RGB(255,255,255)白
三原色相同,纯灰
在这里插入图片描述

图片分为像素点,灰色图片是二维,R=G=B
彩色图片是三维RGB各一维,不能直接显示三维矩阵,需要取出来

img = double(imread(photo_address));
% 图片保存的对象是 'uint8' 类型,需要将其转换为double类型才能进行奇异值分解的操作
% 注意:  img是图形的像素矩阵,如果是彩色图片则是三维矩阵,如果是灰色图片(R=G=B)则是二维矩阵
% 因此我们可利用第三个维度的大小来判断图片是否为灰色的
% 灰色图片的只有两个维度,所以size(img ,3) == 1
%rgb2gray函数可以将彩色图片转换为灰色图片, 注意:输入的变量要为默认的'uint8' 类型的图片对象

对于彩色矩阵,可以把矩阵三个色彩模式提取出来,进行拼接,其中矩阵的压缩利用svd函数,后采用cat函数进行拼接。

(5)matlab对视频的处理

实际上就是图片的叠加。
对应每一帧的图片的像素点,每秒对应的帧数
处理就是先变成图片,读出帧所在的图片的位置,然后保留这个图片。
则人脸识别就可以用这种方法,提取一幅图片,分析特征属性。
批量处理文件夹中的图片,利用循环,把文件夹中所有的图片都进行处理,找到文件下jpg结尾的文件,得到对应文件名称的文件的元胞数组。
使用时还要进行拼接得到地址,然后利用函数进行压缩,和输出即可。

video_file='test.flv';
video=VideoReader(video_file);  
frame_number = video.NumberOfFrames; %视频的总帧数
%% 分离图片
for i=1:30:frame_number   % 这里演示的是每30帧数保存一次
	image_name=strcat('图片\image_',num2str(i),'.jpg');
% 填写对应路径
    Photo=read(video,i);            %读出所在帧的图片对象
    imwrite(Photo,image_name);      %将图片保存到指定的位置
end

(6)总结 SVD 奇异值分解

1.优点,简化数据,去除噪声点,对数据降维(减小秩)
2.缺点,转换后的数据可能不好理解
3.适用于数据类型是数值型

通过SVD对数据处理,可以对原始数据进行精简,实际上是去除了噪声和冗余信息
比较好的应用:信息检索和推荐系统.

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值