融合目的

多光谱影像具有高光谱分辨率低空间分辨率,全色影像具有高空间分辨率低光谱分辨率,将这两种影像进行融合就可以得到同时具有高空间分辨率高光谱分辨率的影像

PCA主成分变换影像融合

PCA主成分分析原理

参考博客:主成分分析(PCA)原理详解

融合步骤

代码

from osgeo import gdal, gdalconst, gdal_array
import numpy as np
from score import *if __name__ == '__main__':pantif = './sub_image/SV1-03_20180407_L2A0001046618_1012102060010001_01-PAN.tif' # 全色影像muxtif = './sub_image/SV1-03_20180407_L2A0001046618_1012102060010001_01-MUX.tif' # 多光谱影像# 读取全色波段影像gdal.AllRegister()pands = gdal.Open(pantif, gdalconst.GA_ReadOnly)# 宽高panX = pands.RasterXSizepanY = pands.RasterYSize# 坐标系pansrs = gdal.Dataset.GetSpatialRef(pands)# 读取多光谱影像muxds = gdal.Open(muxtif, gdalconst.GA_ReadOnly)muxsrs = gdal.Dataset.GetSpatialRef(muxds)# 数据类型muxBand = gdal.Dataset.GetRasterBand(muxds, 1)muxType = muxBand.DataType# 重采样options = gdal.WarpOptions(width=panX, height=panY, srcSRS=muxsrs,dstSRS=pansrs, outputType=gdalconst.GDT_Int32, resampleAlg=gdalconst.GRIORA_Bilinear, creationOptions=['COMPRESS=LZW'])gdal.Warp("./pca.tif", muxds, options=options)# 主成分分析影像融合rsData = gdal_array.LoadFile("./pca.tif")nBands, xSzie, ySize = rsData.shapersArray = Nonefor i in range(nBands):bArray = rsData[i]bArray = np.reshape(bArray, (-1, 1))if i == 0:rsArray = bArrayelse:rsArray = np.hstack((rsArray, bArray))rsArrayAvg = np.mean(rsArray, axis=0)rsArray = rsArray - rsArrayAvgu, s, v = np.linalg.svd(rsArray, full_matrices=False)rsPCA = rsArray@v.TrsPCA1 = rsPCA[:, 0]rsPCA1Avg = np.mean(rsPCA1)rsPCA1Std = np.std(rsPCA1)# 计算全色波段的均值和标准差panBand = gdal.Dataset.GetRasterBand(pands, 1)panArray = gdal.Band.ReadAsArray(panBand)panArray = np.reshape(panArray, (-1, 1))panStd = np.std(panArray)panAvg = np.mean(panArray)# 计算变换系数k1,k2k1 = rsPCA1Std/panStdk2 = rsPCA1Avg-k1*panAvg# 对全色波段进行变换使其与第一主成分的标准差和均值一直panArray = panArray*k1+k2# 替换第一主成分rsPCA[:, 0] = panArray[:, 0]# 主成分逆变换rsArray = rsPCA@v+rsArrayAvgrsds = gdal.Open("./pca.tif", gdalconst.GA_Update)for i in range(nBands):bArray = rsArray[:, i]bArray = np.reshape(bArray, (ySize, xSzie))iBand = gdal.Dataset.GetRasterBand(rsds, i+1)gdal.Band.WriteArray(iBand, bArray)del rsds, pands, muxdsprint('ok!')

融合效果

多光谱影像

全色影像

融合影像

细节对比

融合前后道路

融合前后农田田埂

PCA主成分分析遥感影像融合相关推荐

  1. 特征级融合_遥感影像融合的方法有哪些

    遥感影像融合的方法有哪些 · 多种名称,常见的有 · 图像复合(Image Fusion) · 影像融合(Image Merging). · 数据复合(Data Fusion). · 数据综合(Dat ...

  2. matlab遥感影像相对配准,基于IHS 变换的遥感影像融合方法研究

    摘 要:为了解决遥感影像空间分辨率与光谱信息不能兼顾的问题,即全色影像具有较高的空间分辨率但缺乏光谱信息,多光谱影像光谱分辨率高,光谱信息丰富,但其空间分辨率低的问题,本文采用MATLAB 实验工具, ...

  3. ERDAS IMAGINE 9.2进行遥感影像融合

    ERDAS IMAGINE 9.2进行遥感影像融合 首先打开ERDAS IMAGINE 9.2,如图所示 1.点击Interpreter按钮, 2.再点击Spatial Enhancement... ...

  4. R语言PCA主成分分析(Principle Component Analysis)实战2

    R语言PCA主成分分析(Principle Component Analysis)实战2 目录 R语言PCA主成分分析(Principle Component Analysis)实战2 #案例分析

  5. R语言PCA主成分分析(Principle Component Analysis)与线性回归结合实战

    R语言PCA主成分分析(Principle Component Analysis)与线性回归结合实战 目录 R语言PCA主成分分析(Principle Component Analysis)与线性回归 ...

  6. R语言PCA主成分分析(Principle Component Analysis)实战1

    R语言PCA主成分分析(Principle Component Analysis)实战1 目录 R语言PCA主成分分析(Principle Component Analysis)实战1 #案例分析

  7. 【数学与算法】PCA主成分分析(降维)的通俗理解

    1.PCA降维 PCA主成分分析简单的理解,就是把某物的很多个能直接获取到的特征,经过变换得到很多个新特征,这些新特征对该物体来说,有的影响很大,有的影响很小,只需要使用这些影响大的新特征,舍弃很多影 ...

  8. 统计学习方法第十六章作业:PCA主成分分析算法 代码实现

    PCA主成分分析 import numpy as np class PCA:def __init__(self,x,R=None):self.x = np.array(x)self.dim = sel ...

  9. PCA主成分分析 特征降维 opencv实现

    最近对PCA主成分分析做了一定的了解,对PCA基础和简单的代码做了小小的总结 有很多博客都做了详细的介绍,这里也参考了这些大神的成果: http://blog.sina.com.cn/s/blog_7 ...

最新文章

  1. 利用OpenCV、Python和Ubidots构建行人计数器程序(附完整代码)
  2. 汉字乱码_别欺负我读书少,这些真的不是乱码,是汉字吗?你认识几个?
  3. sql安装目录下log文件夹_Linux安装Hive数据仓库工具
  4. angular 使用data-bs-datepicker时的一个小问题及解决
  5. 白银TD盈亏计算实例介绍
  6. 获取本年、本月、本周时间范围_获取本周本月本季度本年开始结束时间.html
  7. java雪花算法实现
  8. 基于eNSP的千人规模冗余型企业/校园网络设计与规划(可以自己按步骤实现)
  9. google 翻译 tts 语音 tk tkk代码
  10. BZOJ-2037 Sue的小球 DP+费用提前
  11. java 实现短信验证码
  12. DS homework-队列
  13. 经济寒冬之后,是人工智能的春天
  14. python期货基本面分析_Python股票期货交易利器,砖型图详细绘制教程!
  15. 韩国WA15-6819B高性能DSP数字功放芯片
  16. 华测教育入选【腾讯课堂 · 薪选课程】--这可能是你进腾讯的最好机会!
  17. centos7安装大数据平台
  18. Unsupported Personality :UNKNOWN
  19. java set list map_Java中的Set,List,Map
  20. MMA-mathematica绘图

热门文章

  1. Excel删除文本中任意位置所有空格的3种方法比较
  2. Java模拟微信发红包,一看就会
  3. Window10系统安装V-rep教程
  4. sql查询时添加一列为固定值
  5. echarts图表y轴数据设置为固定值,等间距,如何自定义echarts图表y轴数据
  6. lol计算机内存,你每打一把LOL,腾讯就会多往你电脑里塞600M垃圾
  7. reentrantlock与synch区别优点
  8. Qt 之自定义搜索框QLineEdit
  9. 500+分区Mini LED,海信电视E8H让画质更纯净
  10. 如何在iphone上模拟定位