盲源分离matlab程序,ica盲源分离matlab程序.docx

41528d3028836879cd698677c3999917.gifica盲源分离matlab程序.docx

Ica 盲源分离 Matlab 程序 close all; clear all; i4=imread( 1.jpg ); i5=imread( 2.jpg ); i6=imread( 2.png ); i1=rgb2gray(i4); i2=rgb2gray(i5); i3=rgb2gray(i6); s1=reshape(i1,[1,256*256]); s2=reshape(i2,[1,256*256]); s3=reshape(i3,[1,256*256]); 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]); figure; subplot(331),imshow(i1),subplot(332),imshow(i2),subplot(333),imshow(i3); subplot(334),imshow(uint8(ms1)),subplot(335),imshow(uint8(ms2)),subplot(336),i mshow(uint8(ms3)); % mixedsig=zeros(size(mixedsig)); meanValue=mean(mixedsig ) ; mixedsig=mixedsig-meanValue*ones(1,size(mixedsig,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:numOFICi=1;maxNumIterations=100;w=rand(vectorSize,1)-.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;endA(:,r)=dewhiteningMatrix*w;W(r,:)=w *whiteningMatrix;B(:,r)=w; end icasig=W*mixedsig+(W*meanValue)*ones(1,numSamples); icasig=abs(50*icasig); a=reshape(icasig(1,:),[256,256]); b=reshape(icasig(2,:),[256,256]); c=reshape(icasig(3,:),[256,256]); subplot(337),imshow(uint8(a)),subplot(338),imshow(uint8(b)), subplot(339),imshow(uint8(c))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值