2024年4月26日发(作者:)

1、采用以下方法将给定的全色和多光谱图像进行融合:(1)IHS变换;(2)高通滤波;

(3)GIHS方法,参见指定文献;(4)小波变换;(5)PCA变换;(6)Brovey变换。其

中(4)和(5)的方法,可以从网上下载代码来学习,或者自己写也可以,如果是学习别

人的代码,要写出学习总结,学到哪些知识?有什么写代码的技巧?等等。要求:IHS变

换和PCA变换要将正变换和逆变换写成函数的形式,尽量使用矩阵操作。

答:全色影像是整个可见光区间的黑白影像,即只有灰度值的影像。多光谱影像有多

个波段。全色影像一般空间分辨率较高,但是只有灰度值,没有彩色信息。多光谱影像有

丰富的色彩信息,但是通常空间分辨率比全色影像低。全色影像和多光谱影像融合的目的

是得到既有一定的光谱信息,空间分辨率又比多光谱的影像有所提高的影像。所以融合后

的影像是多光谱影像。一般来说,融合后的影像的空间分辨率比全色低,比多光谱的高,

光谱信息比全色的多,但是对于多光谱影像,会有部分失真。融合后的影像空间信息保存

的越多,光谱信息融合的就越差,反之光谱信息保存的越好,空间信息保存的就越差。

(1) 基于IHS变换的全色和多光谱图像融合方法:

 算法流程:多光谱影像RGB空间--->多光谱影像IHS空间--->将强度影像I用全色

影像替换得到融合后的多光谱影像IHS空间--->多光谱影像RGB空间

 Matlab代码:

%hsi变换代码:(即附件文献中的非线性变换方法)

function Ihsi=rgb2hsi(Irgb)

[m,n,k]=size(Irgb);

Irgb=double(Irgb);

r=Irgb(:,:,1);

g=Irgb(:,:,2);

b=Irgb(:,:,3);

temp3=min(min(r,g),b);

temp4=r+g+b;

temp1=((r-g)+(r-b))/2;

temp2=sqrt((r-g).^2+(r-b).*(g-b));

for i=1:m

for j=1:n

if temp4(i,j)==0

S(i,j)=0;