tusvd.m
来自「图像的奇异值分解」· M 代码 · 共 25 行
M
25 行
A=[1 2 1;2 3 2;1 2 1 ]; %给出一个假设矩阵,测试其变换
[u d v] = svd(A); %对其进行svd分解
[nx,ny] = size(A); %确立A的大小,nx行ny列%
I=eye(nx,nx); %单位阵
for i=nx:-1:2
I(i,i) = 0;
end %循环将对角线上元素值设为0%
B=u*I*d*v';
B %矩阵A的变形结果B
[X,map] = imread('G:\程序练习用图片\cameraman.bmp'); %对图像进行操作%
X= rgb2gray(X); %转化为灰度图%
X=double(X);
A=X(100:250 ,100:250); %取一步分作为A,以下变换同上
[nx,ny] = size(A);
I=eye(nx,nx);
for i=nx:-1:10 %10进行变化影响第2幅图的清晰度,越大越接近原图%
I(i,i) = 0;
end
[u d v]=svd(A);
B=u*I*d*v';
subplot(211)
imshow(A,map);
subplot(212)
imshow(B,map); %显示两幅图像%
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?