资源描述:
《应用主成分分解PCA法的图像融合技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、应用主成分分解PCA法的图像融合技术1、实现代码:%functionPea=PCA(TM);clearup=imread(,high,jpg');low=imread(,low.jpg');%读图像figure(1)imshow(up);title('PCA-RGB表示的高分辨率图像');figure(2)imshow(low);titleCPCA-RGB表示的低分辨率图像');%建立第一幅图像%显示图像%图像标题为…%建立第二幅图像%显示图像%图像标题为…%up是一个三维数组,高分辨率图像被分解成R,G,
2、B三个分量[up_R]^double(up(:,:,1));[up_G]=doublc(up(:,:,2));[up_B]二double(up(:,:,3));%low是一个三维数组,低分辨率图像被分解成R,G,B三个分量[low_R]^double(low(:,:,1));[1ow_G]=doub1e(1ow(:,:,2));[1ow_B]=doub1e(1ow(:,3));%返回数组的维度和长度[M,N,color]二size(up);up_Mx=0;low_Mx=0;fori二1:Mforj二1:Nu
3、p_S=[up_R(i,j),up_G(i,j),up_B(i,j)]J;%生成由R,G,B组成的三维列向量,每一个位置对应的rgb的值表示出来up_Mx=up_Mx+up_S;%统计加起来各个像素点的值,即矩阵相加,等于对应位置元素相加low_S=[low_R(i,j),low_G(i,j),low_B(i,j)]';1ow_Mx=1ow_Mx+1ow_S;up_Mx=up_Mx/(M*M);%计算三维列向量的平均值1ow_Mx二1ow_Mx/(M*M);%up_Mx也是一个矩阵,每个元素都除以up_Cx
4、=0;low_Cx=0;fori=1:Mforj=1:Nup_S二[up_R(i,j),up_G(i,j),up_B(i,j)]';up_Cx二up_Cx+up_S*up_S,;%up_Cx加上up_S矩阵乘以矩阵的转置low_S=[low_R(i,j),low_G(i,j),low_B(i,j)]';lowCx二lowCx+low_S*low_S,;endendup_Cx=up_Cx/(M*N)-up_Mx*up_Mx';%运用公式cov(x,y)=E(xy)-ExEy计算协方差矩阵1ow_Cx二1ow_
5、Cx/(M*N)-low_Mx*low_Mx,;.up_A,up_latent]二eigs(up_Cx);%葆方差矩陈的特征荷量组成的矩阵----PCA变换的系数矩陈,特征值%up_latent为6个最大特征值,up_A的列向量为对应特征向量。low_X=[low_R(i,j),low_G(i,1ow_Y二1ow_A'*1ow_X;1ow_Y二low_Y';low_R(i,j)=low_Y(1);1ow_G(i,j)=1ow_Y(2);lowB(i,j)=low_Y(3);[low_A,lowlatent]
6、二eigs(lowCx);up_Y二up_A,*up_X;%生成由R,G,B组成的三维列%每个象素点进行PCA变换正变换upA'为特%征向量的转置up_Y=upY";up_R(i,j)二up_Y(l);up_G(i,j)二up_Y(2);up_B(i,j)=up_Y(3);%转置%高分辨率图片的第1主分量%高分辨率图片的第2主分量%高分辨率图片的第3主分量fori=1:Mforj=1:Nup_X=[up_R(i,j),up_G(i,j),up_G(i,j)]j),low_G(i,j)]%低分辨率图片的第1主
7、分量%低分辨率图片的第2主分量%低分辨率图片的第3主分量fori=1:Mforj=1:Nup_Y二[up_R(i,j),up_G(i,j),up_B(i,j)]';%生成由R,G,B组成的三维列向量up_X=up_A*up_Y;%每个象素点进行PCA变换反变换up_X=up_X';%转置up_r(i,j)二up_X(I);up_g(i,j)=up_X(2);up_b(i,j)=up_X(3);low_Y=[up_R(i,j),low_G(i,j),low_B(i,j)]';%生成由R,G,B组成矗三维列向量
8、,并将低分辨率的%全色图像的第一主成分替换成高分辨率的第一主成分1ow_X=low_A*low_Y;low_X=low_X,;lowr(i,j)=1ow_X仃);low_g(i,j)二1ow_X(2);1ow_b(i,j)二low_X(3);endend%生成最终的融合图像RGB(:,:,l)=low_r;RGB(:,2)=low_g;RGB(:,:,3)=low_b;%建立第三副图像%显示图像figure(3)