佛山网站优化步骤,什么是专门型的网站,网站评论回复如何做,资源网站后台系统介绍奇异值分解在图形压缩中的运用#xff0c;并将简单介绍下Matlab对于图形和视频的处理 一、奇异值分解介绍
1.1 基本概念
奇异值分解(Singular Value Decomposition#xff0c;以下简称SVD)是线性代数中一种重要的矩阵分解#xff1a; U和V都是正交矩阵∑是奇异值矩阵并将简单介绍下Matlab对于图形和视频的处理 一、奇异值分解介绍
1.1 基本概念
奇异值分解(Singular Value Decomposition以下简称SVD)是线性代数中一种重要的矩阵分解 U和V都是正交矩阵∑是奇异值矩阵和A的大小相同其主对角元素是从大到小排列的这些对角元素称为奇异值其他位置元素为0
1.2 求∑的步骤 1.2.1 U的计算 1.2.2 V的计算 1.2.3 ∑的计算 1.3 利用SVD对数据进行降维
举例此处的“降维”更准确而言是使得矩阵的秩减小矩阵大小并未改变。保留原矩阵的特征比例 二、Matlab对奇异值分解
矩阵压缩
2.1 Matlab自带分解[U,S,V] svd(A) % PPT_example.m文件
A [4 0 1 6;0 0 5 1;2 1 3 2] % A : 3*4
[U,S,V] svd(A)
% 注意U*S*(V的转置) A
% U:3*3 S3*4 V 4*4
U*S*V - A
% 因为浮点数计算的缘故所以会有非常微小的偏差
% 1.0e-14 * 0.2665 0.000000000000002665
U(:,1:2)*S(1:2,1:2)*V(:,1:2)
U(:,1:3)*S(1:3,1:3)*V(:,1:3) % 就是A2.2 自定义的mysvd函数
取自清风老师自定义的不同于Matlab自带的使用奇异值分解将矩阵A压缩到指定的特征比例
% mysvd.m文件
function [compress_A] mysvd(A, ratio)
% 输入变量% A要压缩的m*n维的矩阵% ratio(至少)要保留原矩阵的特征比例100%表示不压缩
% 输出变量% compress_A压缩后的矩阵三、Matlab图形的处理
图片压缩
3.1 RGB模式
RGB色彩三原色R代表Red红色G代表Green绿色B代表Blue蓝色。 计算机定义颜色时R、G、 B三种成分的取值范围是0‐2550表示没有刺激量255表示刺激量达最大值。R、G、B均为255时就合成了白光R、G、B均为0时就形成了黑色。灰色图片R、G、B三原色完全相同否则称为彩色图片。
3.2 图片压缩的函数
函数作用利用SVD函数对图形进行压缩输入变量 photo_address要压缩的图片存放的位置建议输入完整的路径save_address将压缩后的图片保存的位置建议输入完整的路径ratio要保留原矩阵的特征比例100%表示不压缩greycompress: 如果该值等于1则会彩色的原图片转换为灰色图片后再压缩默认值为0表示不进行转换 输出变量无不需要输出因为函数运行过程中已经将图片保存了
% photo_compress.m文件
function [] photo_compress(photo_address, save_address,
ratio, greycompress)3.3 SVD压缩后的效果 四、视频分离为图片
4.1 video2photo.m代码文件
Matlab对视频的要求较高有的原视频属性详细情况不带帧数可以采用转化器转个视频格式如迅捷视频转换器否则可能会报如下错误 错误使用 VideoReader/init (line 619)无法确定所需的编解码器 video中的对象讲解
%% 读取视频
video_file迅捷视频转换器转换后的新闻联播.mp4;
videoVideoReader(video_file);
frame_number video.NumberOfFrames; %视频的总帧数%% 分离图片
for i1:30:frame_number % 这里演示的是每30帧数保存一次如果每一帧都全部保存的话所要花费的时间很长image_namestrcat(C:\Users\hc_lzp\Desktop\数学建模视频录制\第13讲.奇异值分解\代码和例题数据\将视频转成图片\图片\image_,num2str(i),.jpg);Photoread(video,i); %读出所在帧的图片对象imwrite(Photo,image_name); %将图片保存到指定的位置
end4.2 分离效果
4.3 批量处理文件夹内的所有图片 folder_name C:\Users\hc_lzp\Desktop\数学建模视频录制\第13讲.奇异值分解\代码和例题数据\压缩文件夹内的所有图片\葫芦娃七兄弟;
dirOutputdir(fullfile(folder_name, *.jpg));
files{dirOutput.name};
n length(files);
ratio 0.9;
for i 1:nphotoname files(i);name photoname{1};photo_address fullfile(folder_name, name);disp(photo_address)save_address fullfile(folder_name, strcat(compress_,name));photo_compress(photo_address, save_address, ratio)
end五、SVD的评价和应用
5.1 SVD奇异值分解评价
优点简化数据去除噪声点对数据降维减少秩缺点数据的转换可能难以理解适用于数据类型数值型。
通过SVD对数据的处理可对原始数据进行精简实际上是去除了噪声和冗余信息以此达到了优化数据的目的。
5.2 SVD的另外两个重要应用
潜在语义索引最早的SVD应用之一就是信息检索称利用SVD的方法为潜在语义检索LSI或隐形语义分析LSA 有兴趣可以去阅读吴军老师的《数学之美》。 推荐系统SVD的另一个应用就是推荐系统较为先进的推荐系统先利用SVD从数据中构建一个主题空间然后再在该空间下计算相似度以此提高推荐的效果。