• 大小: 73KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-07-26
  • 语言: Matlab
  • 标签: 图像融合  

资源简介

基于主成分分析的图像融合matlab代码及实验图像

资源截图

代码片段和文件信息

%PCA
clear
up=imread(‘high.jpg‘);         %读图像
low=imread(‘low.jpg‘);
figure(1)                          
imshow(up);                                 %读RGB数值
title(‘PCA-RGB表示的高分辨率图像‘);
figure(2)                         
imshow(low)
title(‘PCA-RGB表示的低分辨率图像‘);
up=double(up);
low_R=double(low(::1));
low_G=double(low(::2));
low_B=double(low(::3));
[MNcolor]=size(up);
low_Mx=[0 0 0]‘;
for i = 1 : M
    for j = 1 : N
         low_S = [low_R(ij)low_G(ij)low_B(ij)]‘;
         low_Mx = low_Mx + low_S;
    end
end                   
low_Mx = low_Mx / (M*N);% 计算低分辨率图片的三维列向量的平均值
low_Cx=0;
for i = 1 : M
    for j = 1 : N
         low_S = [low_R(ij)low_G(ij)low_B(ij)]‘;
         low_Cx = low_Cx + low_S*low_S‘;
    end
end 
low_Cx = low_Cx / (M * N)- low_Mx*low_Mx‘;  % 运用公式cov(xy)=E(xy)-ExEy 计算协方差矩陈    
[low_Alow_latent] = eigs(low_Cx);% 协方差矩陈的特征向量组成的矩陈----PCA变换的系数矩陈特征值.
for i = 1 : M
    for j = 1 : N       
       low_X = [low_R(ij)low_G(ij)low_B(ij)]‘;
       low_Y = low_A‘*low_X;
       low_Y=low_Y‘;
       low_R(ij) = low_Y(1);                          % 低分辨率图片的第1主分量
       low_G(ij) = low_Y(2);                          % 低分辨率图片的第2主分量
       low_B(ij) = low_Y(3);                          % 低分辨率图片的第3主分量
   end
end
im=uint8(low_R);  %匹配一个图像的直方图
y=imhist(im);
y=y/sum(y);         %归一化,使函数符合概率分布的sum(y)==1这样一个规律
plot(y);            %待匹配的直方图
G=[];               %函数的累积直方图
for i=1:256
   G=[G sum(y(1:i))]; 
end
img=imread(‘high.jpg‘);
[m n]=size(img);
hist=imhist(img);       %待处理图像的直方图
p=hist/(m*n);           
s=[];                   %待处理图像的累积直方图
for i=1:256
    s=[s sum(p(1:i))];
end
for i=1:256
    tmp{i}=G-s(i);
    tmp{i}=abs(tmp{i});         %因为要找距离最近的点,所以取绝对值
    [a index(i)]=min(tmp{i});   %找到两个累积直方图距离最近的点
end
imgn=zeros(mn);
for i=1:m
   for j=1:n
      imgn(ij)=index(img(ij)+1)-1;    %由原图的灰度通过索引映射到新的灰度
   end
end
imgn=uint8(imgn);
imgn=double(imgn);
for i = 1 : M
    for j = 1 : N 
       low_Y = [imgn(ij)low_G(ij)low_B(ij)]‘;%将低分辨率的全色图像的第一主成分替换成高分辨率的图片
       low_X = low_A*low_Y;
       low_X=low_X‘;
       r(ij) = low_X(1);
       g(ij) = low_X(2);
       b(ij) = low_X(3);
   end
end
RGB(::1)=r;
RGB(::2)=g;
RGB(::3)=b;
figure(3)
imshow(uint8(round(RGB)))
title(‘PCA-RGB表示的转化图像‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      39964  2013-10-08 17:41  PCA图像融合\high.jpg

     文件      33350  2013-10-08 17:41  PCA图像融合\low.jpg

     文件       2599  2014-05-26 18:00  PCA图像融合\PCA.m

     目录          0  2014-06-19 00:36  PCA图像融合

----------- ---------  ---------- -----  ----

                75913                    4


评论

共有 条评论