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;
发布评论