• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

高光谱图像融合现状

武飞扬头像
Freelancefangjian
帮助1

高光谱图像融合现状

基于Pansharpening的高光谱图像融合方法

基于Pansharpening的高光谱图像融合方法是从多光谱图像与全色图像的融合方法迁移到高光谱图像融合方法的。它主要有以下几种方法:

成分替代

成分替代方法是对多光谱图像进行变换分离其空间部分,利用全色图像代替再进行逆变换。

matlab代码如下(示例):

function I_Fus_PCA = PCA(HS,PAN)

HS = double(HS);

%%%%%%%% Upsampling
ratio1 = size(PAN,1)/size(HS,1);

HSU = interp23tapGeneral(HS,ratio1);

imageLR = double(HSU);
imageHR = double(PAN);

[n,m,d]=size(imageLR);
imageLR = reshape(imageLR, [n*m,d]);

% PCA transform on MS bands
[W,PCAData] = princomp(imageLR);
F = reshape(PCAData, [n,m,d]); 

% Equalization
I = F(:,:,1);
imageHR = (imageHR - mean(imageHR(:)))*std2(I)/std(imageHR(:))   mean2(I);

% Replace 1st band with PAN
F(:,:,1) = imageHR;

% Inverse PCA
I_Fus_PCA = reshape(F,[n*m,d]) * W';
I_Fus_PCA = reshape(I_Fus_PCA, [n,m,d]);

% Final Linear Equalization
for ii = 1 : size(HSU,3)
    h = I_Fus_PCA(:,:,ii);
    I_Fus_PCA(:,:,ii) = h - mean2(h)   mean2(squeeze(double(HSU(:,:,ii))));
end

end
学新通

多分辨率分析

多分辨率分析方法是提取全色的空间细节,对多光谱进行细节补充。
工具包链接为:pan-sharpening的方法

基于模型驱动的高光谱图像融合方法

工具包链接:模型驱动的高光谱图像融合工具包

基于深度学习的高光谱图像融合方法

简单利用卷积神经网络融合高光谱图像

利用卷积神经网络学习低分辨率高光谱图像和高分辨率多光谱图像到高分辨率高光谱图像的映射关系。

tensorflow代码如下(示例):

def get_cnn():
    inputs = l = Input((4, 4, 31), name='inputs') #低分辨率高光谱图像块
    inputs1 = l1 = Input((32, 32, 3), name='inputs1') #高分辨率多光谱图像块
    l = UpSampling2D((8, 8))(l)
    l = tf.concat([l, l1],3)
    l3 = Conv2D(31, (5, 5), padding='same', name='conv13')(l2)
    l3 = Activation('relu', name='conv13_relu')(l3)
    output = l3
    return inputs,inputs1, output

深度展开网络

tensorflow代码如下(示例):

def HSInet(Y,Z, iniUp3x3,iniA,upRank,outDim,HSInetL,subnetL,ratio=8):
    B = tf.get_variable(
              'B', 
              [1, 1, upRank, outDim],
              tf.float32, 
              initializer=tf.truncated_normal_initializer(mean = 0.0, stddev = 0.1))
    tranB = tf.transpose(B,perm = [0,1,3,2])
    CListX = getCs('TheCsX', ratio)#inital the kernel for downsampling
    downY4, downY16, _ = downSam('GetPrior',Y, CListX, 3, ratio)# getPrior for upsample
    # fist stage
    YA = MyconvA( 'YA1', Y, 3, outDim, [1,1,1,1], iniA) #caculating YA
    _, _, downX32 = downSam('CX1',YA, CListX, outDim, ratio)  # downsampling 
    E  = downX32-Z   # Z上的残差
    G  = UpSam('E1',E, downY4, downY16, Y, iniUp3x3, outDim, ratio) # unsampling E
    G  = tf.nn.conv2d(G, tranB, [1,1,1,1], padding='SAME')
    HY = -G #
    HY  = resCNNnet(('Pri%s'%(1)),HY,1,upRank, subnetL) 
    HY  = resCNNnetPrior(('Pri%s'%(1)),HY, Y,1,upRank,3,subnetL)
    ListX = []
    # 2nd to the 19th stage
    for j in range(HSInetL-2):
        HYB= tf.nn.conv2d(HY, B, [1,1,1,1], padding='SAME')
        ListX.append(YA   HYB)
        _, _, downX32  = downSam( ('CX%s'%(j 2)),ListX[int(j)],CListX,outDim,  ratio)
        E   = downX32-Z
        G   = UpSam( ('E%s'%(j 2)),E, downY4, downY16, Y, iniUp3x3, outDim, ratio)
        G   = tf.nn.conv2d(G, tranB, [1,1,1,1], padding='SAME')
        HY  = HY-G
        HY  = resCNNnet(('Pri%s'%(j 2)),HY,j 2,upRank, subnetL)
        HY  = resCNNnetPrior(('Pri%s'%(j 2)),HY, Y,j 2,upRank,3,subnetL)
    the final stage
    HYB     = tf.nn.conv2d(HY, B, [1,1,1,1], padding='SAME')
    ListX.append(YA   HYB)
    outX    = resCNNnet('FinalAjust',ListX[int(HSInetL-2)],101,outDim, levelN = 5)
    _,_,CX  = downSam( ('CX%s'%(HSInetL)),ListX[int(HSInetL-2)],CListX, outDim,  ratio)
    E  = CX-Z
    return outX, ListX, YA, E, HY
学新通

无监督深度学习方法

高光谱图像融合数据(仿真的)

CAVE数据集链接:CAVE数据集
Harvard数据集链接:Harvard数据集
ICVL数据集链接:ICVL数据集

高光谱图像融合数据(真实的)

总结

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbffaj
系列文章
更多 icon
同类精品
更多 icon
继续加载