⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tuxingfenlifg.m

📁 实现叠加后的盲图形信号分离算法
💻 M
字号:
function mixedimage(I1,I2, I3)

K=4;
N=100;
k=1:N;
I1=rand(1,N);
I2=square(2*pi*k/8);
I3=sin(2*pi*k/32);

s1=reshape(I1);
s2=reshape(I2);
s3=reshape(I3);
s=[s1;s2;s3];
sig=double(s);
Aorig=rand(size(sig,1));
mixedsig=Aorig*sig;
ms1=reshape(mixedsig(1,:),[256,256]);
ms2=reshape(mixedsig(2,:),[256,256]);
ms3=reshape(mixedsig(3,:),[256,256]);
MI1=uint8(round(ms1));
MI2=uint8(round(ms2));
MI3=uint8(round(ms3));
subplot(321),imshow(MI1),subplot(322),imshow(MI2),subplot(323),imshow(MI3)
omixedsig=zeros(size(mixedsig));
mixedmean=mean(mixedsig')';
mixedsig=mixedsig-mixedmean*ones(1,size(omixedsig,2));
covarianceMatrix=cov(mixedsig',1);
[E,D]=eig(covarianceMatrix);
eigenvalues=flipud(sort(diag(D)));
whiteningMatrix=inv(sqrt(D))*E';
dewhiteningMatrix=E*sqrt(D);
whitesig=whiteningMatrix*mixedsig;
X=whitesig;
[vectorsize,numsamples]=size(X);
B=zeros(vectorsize);
numOFIC=vectorsize;
for r=1:numOFIC
i=1;maxnumiterations=50;
w=rand(vectorsize,1)-0.5;
w=w/norm(w);
while i<=maxnumiterations+1
    w=w-B*B'*w;
    w=w/norm(w);
    w=(X*((X'*w).^3))/numsamples-3*w;
    w=w/norm(w);
    i=i+1;
end
A(:,r)=dewhiteningMatrix*w;
W(r,:)=w'*whiteningMatrix;
B(:,r)=w;
end
icasig=W*mixedsig+(W*mixedmean)*ones(1,numsamples);
icasig=abs(50*icasig);
Is1=reshape(icasig(1,:),[256,256]);
Is2=reshape(icasig(2,:),[256,256]);
Is3=reshape(icasig(3,:),[256,256]);
II1=uint8(round(Is1));
II2=uint8(round(Is2));
II3=uint8(round(Is3));
subplot(324),imshow(II1),subplot(325),imshow(II2),subplot(326),imshow(II3)


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -