在好例子网,分享、交流、成长!
您当前所在位置:首页MATLAB 开发实例MATLAB语言基础 → PCA融合.m

PCA融合.m

MATLAB语言基础

下载此实例
  • 开发语言:MATLAB
  • 实例大小:5.52KB
  • 下载次数:1
  • 浏览次数:49
  • 发布时间:2022-01-22
  • 实例类别:MATLAB语言基础
  • 发 布 人:庞梦晴
  • 文件格式:.m
  • 所需积分:2
 相关标签: Pca CA Pc

实例介绍

【实例简介】PCA融合.m

【实例截图】

from clipboard

【核心代码】
% function Pca =  PCA(TM);
clear
g_R=0;                                        %r清晰度描述
g_G=0;                                        %g清晰度描述
g_B=0;                                        %b清晰度描述
h_R=0;                                        %熵的描述 
h_G=0;
h_B=0;
fenzi_R=0;
fenzi_G=0;
fenzi_B=0;
fenmu_up_R=0;
fenmu_up_G=0;
fenmu_up_B=0;
fenmu_low_R=0;
fenmu_low_G=0;
fenmu_low_B=0;
init_up_R=[];
init_up_G=[];
init_up_B=[];
init_low_R=[];
init_low_G=[];
init_low_B=[];
up=imread('high.jpg');         %读图像
low=imread('low.jpg');
figure(1)                          
imshow(up);                                 %读RGB数值
title('PCA-RGB表示的高分辨率图像');
figure(2)                         
imshow(low); 
title('PCA-RGB表示的低分辨率图像');

[up_R]=double(up(:,:,1));
[up_G]=double(up(:,:,2));
[up_B]=double(up(:,:,3));

[low_R]=double(low(:,:,1));
[low_G]=double(low(:,:,2));
[low_B]=double(low(:,:,3));

[M,N,color]=size(up);

up_Mx = 0;
low_Mx=0;
for i = 1 : M
    for j = 1 : N
         up_S = [up_R(i,j),up_G(i,j),up_B(i,j)]'; % 生成由R,G, B组成的三维列向量 
         up_Mx = up_Mx up_S;
         
         low_S = [low_R(i,j),low_G(i,j),low_B(i,j)]';
         low_Mx = low_Mx low_S;
    end
end
up_Mx = up_Mx / (M*N);   % 计算三维列向量的平均值
low_Mx = low_Mx / (M*N);

up_Cx = 0;
low_Cx=0;
for i = 1 : M
    for j = 1 : N
         up_S = [up_R(i,j),up_G(i,j),up_B(i,j)]';
         up_Cx = up_Cx up_S*up_S'; 
         
         low_S = [low_R(i,j),low_G(i,j),low_B(i,j)]';
         low_Cx = low_Cx low_S*low_S';
    end
end

up_Cx = up_Cx / (M * N)- up_Mx*up_Mx';        % 计算协方差矩陈    
low_Cx = low_Cx / (M * N)- low_Mx*low_Mx'; 

[up_A,up_latent] = eigs(up_Cx); % 协方差矩陈的特征向量组成的矩陈----PCA变换的系数矩陈,特征值
[low_A,low_latent] = eigs(low_Cx);

for i = 1 : M
    for j = 1 : N
       up_X = [up_R(i,j),up_G(i,j),up_G(i,j)]';        % 生成由R,G, B组成的三维列
       up_Y = up_A'*up_X;                              % 每个象素点进行PCA变换正变换
       up_Y = up_Y';
       up_R(i,j) = up_Y(1);                            % 高分辨率图片的第1主分量
       up_G(i,j) = up_Y(2);                            % 高分辨率图片的第2主分量
       up_B(i,j) = up_Y(3);                            % 高分辨率图片的第3主分量
       
       low_X = [low_R(i,j),low_G(i,j),low_G(i,j)]';
       low_Y = low_A'*low_X;
       low_Y = low_Y';
       low_R(i,j) = low_Y(1);                          % 低分辨率图片的第1主分量
       low_G(i,j) = low_Y(2);                          % 低分辨率图片的第2主分量
       low_B(i,j) = low_Y(3);                          % 低分辨率图片的第3主分量
   end
end

for i = 1 : M
    for j = 1 : N
       up_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(1);
       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)]';
       low_X = low_A*low_Y;
       low_X = low_X';
       low_r(i,j) = low_X(1);
       low_g(i,j) = low_X(2);
       low_b(i,j) = low_X(3);
   end
end
%RGB(:,:,1)=up_r;
%RGB(:,:,2)=up_g;
%RGB(:,:,3)=up_b;

RGB(:,:,1)=low_r;
RGB(:,:,2)=low_g;
RGB(:,:,3)=low_b;

figure(3)
imshow(uint8(RGB));
title('PCA-RGB表示的转化图像');




              %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
              %                       下面是计算相关系数                           %
              %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
init_up_R=ones(M,N)*mean(up_R(:));
init_up_G=ones(M,N)*mean(up_G(:));
init_up_B=ones(M,N)*mean(up_B(:));

init_low_R=ones(M,N)*mean(low_R(:));
init_low_G=ones(M,N)*mean(low_G(:));
init_low_B=ones(M,N)*mean(low_B(:));

for i=1:M
    for j=1:N
        fenzi_R=fenzi_R (up_R(i,j)-init_up_R(i,j))*(low_R(i,j)-init_low_R(i,j));
        fenmu_up_R=fenmu_up_R (up_R(i,j)-init_up_R(i,j))^2;
        fenmu_low_R=fenmu_low_R (low_R(i,j)-init_low_R(i,j))^2;
        
        fenzi_G=fenzi_G (up_R(i,j)-init_up_G(i,j))*(low_R(i,j)-init_low_G(i,j));
        fenmu_up_G=fenmu_up_G (up_R(i,j)-init_up_G(i,j))^2;
        fenmu_low_G=fenmu_low_G (low_R(i,j)-init_low_G(i,j))^2;
        
        fenzi_B=fenzi_B (up_R(i,j)-init_up_B(i,j))*(low_R(i,j)-init_low_B(i,j));
        fenmu_up_B=fenmu_up_B (up_R(i,j)-init_up_B(i,j))^2;
        fenmu_low_B=fenmu_low_B (low_R(i,j)-init_low_B(i,j))^2;       
        
    end
end
rou_R=fenzi_R/(sqrt(fenmu_up_R*fenmu_low_R));
rou_G=fenzi_G/(sqrt(fenmu_up_G*fenmu_low_G));
rou_B=fenzi_B/(sqrt(fenmu_up_B*fenmu_low_B));
fprintf('\n\n   R的相关系数为:%.4f\n   G的相关系数为:%.4f\n   B的相关系数为:%.4f',rou_R,rou_G,rou_B);




              %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
              %                       下面是计算清晰度G                            %
              %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
              
 
 for ii=1:M-1
    for jj=1:N-1
        g_R=g_R sqrt((((low_r(ii 1,jj)-low_r(ii,jj))^2 (low_r(ii,jj 1)-low_r(ii,jj))^2))/2);
        g_G=g_G sqrt((((low_g(ii 1,jj)-low_g(ii,jj))^2 (low_g(ii,jj 1)-low_g(ii,jj))^2))/2);
        g_B=g_B sqrt((((low_b(ii 1,jj)-low_b(ii,jj))^2 (low_b(ii,jj 1)-low_b(ii,jj))^2))/2);

    end
end
fprintf('\n\n   R的清晰度为:%.4f\n   G的清晰度为:%.4f\n   B的清晰度为:%.4f',...
          g_R/(M-1)/(N-1),g_G/(M-1)/(N-1),g_B/(M-1)/(N-1));
.
└── 好例子网_PCA_Fusio_use.m

0 directories, 1 file


标签: Pca CA Pc

实例下载地址

PCA融合.m

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警