ms=imread('E:\学习\数字图像分析与处理\实验1\MS.tif');
[a,b,c]=size(ms); %获取图片尺寸
m=double(ms)/255; %将图片信息转为double格式
pan=imread('E:\学习\数字图像分析与处理\实验1\PAN.tif ');
p1=double(pan)/255; %将图片信息转为double格式
m1=zeros(a,b); %定义矩阵变量m1,用于表示红色波段变量
m2=zeros(a,b); %定义矩阵变量m2,用于表示绿色波段变量
m3=zeros(a,b); %定义矩阵变量m3,用于表示蓝色波段变量
for f=1:a
for e=1:b
sum(f,e)=m(f,e,1)+m(f,e,2)+m(f,e,3);
%高光谱图像中三种波段相加
m1(f,e)=m(f,e,1)*p1(f,e)/sum(f,e);
%区分高分辨率灰度图像中代表红色的波段
m2(f,e)=m(f,e,2)*p1(f,e)/sum(f,e);
%区分高分辨率灰度图像中代表绿色的波段
m3(f,e)=m(f,e,3)*p1(f,e)/sum(f,e);
%区分高分辨率灰度图像中代表蓝色的波段
end
end
for i=1:a
for j=1:b
p(i,j,1)=m1(i,j);
%在高分辨率灰度图像中给红色部分上色
p(i,j,2)=m2(i,j);
%在高分辨率灰度图像中给绿色部分上色
p(i,j,3)=m3(i,j);
%在高分辨率灰度图像中给蓝色部分上色
end
end
ED=uint8(round(p*255)); %对处理完毕的图像进行无符号化处理
subplot(2,2,1);imshow(ms); %用subplot将几张图片组合展示
title('MS图像');
subplot(2,2,3);imshow(pan);
title('PAN图像');
subplot(2,2,2);imshow(ED);
title('Brovey融合后图像');
subplot(2,2,4);imshow(ED *3); %因为融合后的图片亮度过暗,所以亮度乘三
title('亮度乘三' );
评论0