现在时间是:
当前位置:首 页 >> Matlab>> 教学区>> 文章列表

16074311 实验7

作者:16074311   发布时间:2019-05-21 17:27:43   浏览次数:92


clc
clear all
I=imread('tets.jpg');
imshow(I);m
[m,n]=size(I(:,:,1));
A0=zeros(m,n);
A1=double(I(:,:,1));
A2=double(I(:,:,2));
A3=double(I(:,:,3));
A=[A0 A2 A1 A3];
[U S V]=svdQ(A);
k=1
Sx=s(1:K,1:K);
while(sum(Sx))/sum(sum(S))<0.95)
    J=timesQ(U(:,[1:k,m+1:m+k,2*m+1:2*m+k,3*m+1:3*m+k]),[Sx,zeros(k,3*k)]);
    J=timesQ(J,transQ(V(:,[1:k,n+1:n+k,2*n+1:2*n+k,3*n+1:3*n+k])));
    [jm,jn]=size(J);
    jn=jn/4;
    X(:,:,2)=J(:,jn+1:2*jn);
    X(:,:,1)=J(:,2*jn+1:3*jn);
    X(:,:,3)=J(:,3*jn+1:4*jn);
    figure;
    imshow(uint8(X));
    k=k+1;
    Sx=S(1:k,1:k);
end



function [U,D,V]=svdQ(A)
%function [U,D,V]=svdQ(A)
%input the first block row of real presentation of quaternion matrix
%Q=A0+A1i+A2j+A3k
%A=(A0,A2,A1,A3);
% output 
%D; %  is the diagonal matrix whose diagonal elements are singular values of quaternion matrix  Q
%U=[U0 U2 U1 U3]; % is the first block row of real presentation of left
%singular vectors
%V=[V0 V2 V1 V3]; % is the first block row of real presentation of right
%singular vectors

% by Zhigang Jia on Aug 14 2014, 02:33

[U,B,V]=bidiagQ(A);

[u,D,v]=svd(B);

U=U*blkdiag(u,u,u,u);

V=V*blkdiag(v,v,v,v);
 







上一篇:没有了    下一篇:没有了

Copyright ©2020    计算数学达人 All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 |燕窝 版权所有 © 2005-2020 lingw.net.粤ICP备16125321号 -5